关于类的c成员和函数一些知识(1)
1.若是类为空,则它的大小为1
class A {}; sizeof(A) = 1;//c++规定两个对象不能有相同的起始地址空间.
2.用struct和class定义的类的默认访问权限以及继承权限是不一样的.
struct定义的类的默认访问权限和继承权限是公有的(public)
class定义的类的默认访问权限和继承权限是私有的(private)
3.构造函数(函数名和类名相同,无返回值)和析构函数(~+类名)
若是没有自己实现构造函数或者析构函数,则系统会自动生成,函数体为空,什么都不做.若是自己实现了构造函数,会根据输入的参数进行选择,即函数的重载.
4.构造函数:(无返回值)函数名跟类(class)名相同
如果没有自己实现构造函数,系统会自动生成一个默认构造函数,该函数参数列表为空,函数体为空,不做任何事情,若自己实现了构造函数,系统则不会生成默认构造函数在对象进行实例化的时候会根据参数自动调用相应的构造函数(函数的重载)
5.拷贝构造函数
用一个已经存在的对象实例化一个正在生成的对象的时候会自动调用拷贝构造函数,如果没有自己实现,系统会自动生成默认拷贝构造函数,默认的拷贝构造函数只进行浅拷贝.若自己实现了拷贝构造函数,系统则不会生成默认拷贝析造函数
注意:
1. 必须传引用(函数传参也是一个生成对象的过程)
2. 防止浅拷贝(相当于两个指针指向同一个地址)
6.this指针(代表的是指向对象自身的指针)
普通成员方法的参数列表的第一个默认参数是this指针
普通成员方法中使用到使用到类成员的地方,成员前面默认加上this的解引用

浙公网安备 33010602011771号