-
带有默认值的构造函数注意与重载的构造函数歧义的情况,比如:<br> teacher();<br> teacher(string name ="A", int age = 20);<br> 如果 后续调用到了 无参构造,则 编译时就会报错。<br> 如果不去实例化无参对象,编译还是能够通过。 这样看来teacher(string name ="A", int age = 20);也看作是无参的构造函数,当实例化无参对象的时候,编译的时候就不知道执行那个构造函数,于是编译就会报错。查看全部
-
内存区的划分,数据在内存中的存储以及构造函数对数据的初始化<br><br> <br><br> 函数的重载是 参数的个数不同,参数的类型不同或参数的调用顺序不同<br> 栈区的特点是内存分配或者回收由系统控制,而堆区是用 new 分配内存,必须要程序员分配和释放内存。<br> 构造函数是为了避免初始化函数误操作,构造函数没有返回值,写构造函数连 void 都不用写。<br> 类被实例化之前不会占用堆或者栈中内存,实例化之后,每个对象都会在栈(或堆)中开辟一段内存,占据不同的内存,而逻辑代码只编译出一份,放在内存中代码区,需要使用的时候,代码区的代码供所有区使用。<br> 构造函数是为了避免初始化函数误操作,构造函数没有返回值,写构造函数是连 void 都不用写,将初始化代码写在构造函数内,在实例化对象的时候被执行且仅被一次。<br> 实例化函数时,即便有多个构造函数,也仅用到其中一个构造函数。查看全部
-
类内定义和内联函数 的关系是: 类内定义的函数优先选择编译为内联函数,但是一些较为复杂的函数不会编译为内联函数,比如递归等查看全部
-
同文件类内定义 和 分文件类外定义 (函数定义)查看全部
-
方法是数据成员的封装,就像是暴露在外面的接口,通过对接口操作实现内部成员的操作。查看全部
-
用const定义的数据成员,必须用初始化列表初始化查看全部
-
构造函数的规则和特点查看全部
-
构造函数的规则和特点查看全部
-
内存分区查看全部
-
分文件类外定义查看全部
-
同文件类外定义查看全部
-
内联函数与普通函数的区别查看全部
-
从堆中实例化对象查看全部
-
从栈中实例化对象查看全部
-
栈中对象销毁时,也自动调用析构函数查看全部
举报
0/150
提交
取消