-
析构函数在对象销毁前自动调用,用于归还系统资源。无参数,无返回值,不能重载。若未自定义析构函数则系统自动生成。查看全部
-
拷贝构造函数的参数是一定得,不i能重载查看全部
-
void Test(Teacher t); Test(t1); 这样会触发拷贝构造函数,因为有Teacher t = t1;这个过程查看全部
-
如若我们自定义了普通构造函数,则系统不再生成普通构造函数(包括默认构造函数),对象实例化时必须调用自定义构造函数。拷贝构造函数同理。查看全部
-
对于有参构造函数,如果所有参数都带有默认值,则它就是一个默认构造函数查看全部
-
拷贝构造函数: 如果没有自定义,则系统自动生成。 拷贝构造函数的声明: Student(const Student &变量),比如 Student stu1; Student stu2 =stu1; || Student stu3(stu1); const在此表示传入的对象内任何数据成员都不能改变。查看全部
-
拷贝构造函数 定义格式:类名(const 类名&变量名) 如果没有自定义的拷贝构造函数,则系统自动生成一个默认的拷贝构造函数 当采用直接初始化或复制初始化实例化对象时,系统自动调用拷贝构造函数查看全部
-
构造函数: 类名(对象){定义} 如:teacher(string name,int age,int m) 类名(对象):初始化{调用函数} 如:teacher(string name,int age,int m):m_strName(name),m_iAge(age),m_iMax(m) { cout<<"teacher(string name,int age,int m)"<<endl; }查看全部
-
初始化列表先于构造函数执行 初始化列表只能用于构造函数 初始化列表可以同时初始化多个数据成员 初始化列表存在的必要性: class Circle { public: Circle(){m_dPi = 3.14;}//错误 private: const double m_dPi; } 使用初始化列表: class Circle { public: Circle():m_dPi(3.14){}//正确初始化了m_dPi private: const double m_dPi; }查看全部
-
构造函数参数默认值要注意与无参构造函数区别,否则会与无参数构造函数混淆,而使编译器不知道该调用哪个。查看全部
-
构造函数的规则和特点: 1、构造函数在对象实例化时被自动调用(有且仅有一次); 2、构造函数与类同名; 3、构造函数没有返回值(连 void 都不用写); 4、构造函数可以有多个重载形式(遵循重载规则,参数个数、类型、调用顺序不同等); 5、即使有多个构造函数,实例化对象时仅用到一个构造函数; 6、用户没有定义构造函数时,编译器自动生成一个构造函数。 内存分区 栈区:定义变量。内存由系统进行控制,释放和分配 堆区:关键字new,需要程序员自己管理释放 全局区:全局变量和静态变量 常量区:字符串和常量查看全部
-
封装成员函数步骤: 1、先写关键字pullic,private; 2、然后在private中定义全部成员。//加上类型符号string或者int之类的识别符,记得加头文件#include. 3、再写public中罗列所有声明的成员函数: void setName(string name); string getName(); ..... 4、开始内外定义: void "类"::setName(string name) { //把priavte的成员逐个写进去//"成员" = "_同等成员名称" } string "上述成员"::getName() { return "上述成员";//用来实现 } 5、在主函数中使用,实例化对象。 声明一下成员对象的首地址,如: Teacher t;// t关键字入口 通过"."访问 关键字.对象(初始化);如:t.setName("孔子"); ....//所有数据 6、输出所有成员//cout<<"成员"<<....<<endl; 7、开始调试查看全部
-
初始化列表的必要性,const常量不能二次赋值,可是用初始化列表就能编译通过查看全部
-
类中由const修饰的数据成员,必须要在初始化列表中进行初始化,不能在构造函数中进行初始化(相当于二次赋值)查看全部
-
初始化列表的特性查看全部
举报
0/150
提交
取消