zoukankan      html  css  js  c++  java
  • oop第四次课作业总结

    静态成员函数和静态成员变量

    以静态成员函数为例总结,静态成员变量异曲同工。
    类的静态成员函数是同一类的所有对象共享的,不需要用this指针
    可以通过类名和对象名访问静态成员函数
    声明时要在普通成员函数加上static,在定义时不需要
    注意 在初始化静态成员变量时要在类外!!
    例如:(该例子会在后面给出题目)

    class Group {
    private:
    	int num;
    	static int blackList[N];
    	static int size;
    public:
    	Group();
    	Group(int num, bool bSign);
    	static void addToList(int num);
    	static void removeFromList(int num);//静态成员函数的声明(要说明static)
    	static void displayList();
    };
    Group aa;
    void Group::removeFromList(int num) {//静态成员函数的定义(无需说明static)
    	int ii;
    	for ( ii = 0; ii < N; ii++) {
    		if (blackList[ii] == num) {
    			break;
    		}
    	}
    	for (ii = ii; ii + 1 < N; ii++) {
    		blackList[ii] = blackList[ii + 1];
    	}
    	blackList[ii] = 0;
    	size--;
    }
    

    可以如此引用

    aa.removeFromList(num);
    //或者
    Group::removeFromList(num);
    Group::size=0;//初始化静态成员变量
    

    静态成员函数和普通成员函数的区别

    静态成员函数 普通成员函数
    隐含this指针 no yes
    能够访问普通成员函数(变量) no yes
    能够访问静态成员函数(变量) yes yes
    能够通过类名直接调用 yes no
    能够通过对象名调用 yes yes

    例题:oop第四次练习6-4
    写得更好更详细的一篇博客传送门

    如何动态创建对象数组

    1、使用new进行创建,但在最后要记得使用delete释放
    简单解释下:当new创建只是一个对象时,使用“delete 对象名”来释放
    而当new创建一个数组(多个对象),使用“delete []对象名”
    原因是delete只能释放一个对象,而“delete []”能释放数组内的所有对象
    2、要重载多个构造函数,首先要有无参类型的构造函数,再根据需要构造有参类型的构造函数
    3、在通过new+无参类型构造函数 构造了对象数组后,接下来可以用循环的方法输入对象数组中的对象元素(7-1);也可以调用有参类型的构造函数使用输入的数据进行处理(7-5)
    例题:oop第四次练习7-1以及oop第四次练习7-5

    常对象、常成员

  • 相关阅读:
    解决spring整合quartz,tomcat关闭后,quartz还在运行
    注解 @Resource
    spring 跟 诠释及区别
    This is usually caused by using Struts tags without the associated filter.
    离开中心村进国企——北漂18年(21)
    Android开源项目分类汇总
    AndroidManifest.xml文件详解(service)
    Android相关属性的介绍:android:exported
    Android:关于声明文件中android:process属性说明
    关于 android receiver
  • 原文地址:https://www.cnblogs.com/xiao-qingjiang/p/12892326.html
Copyright © 2011-2022 走看看