一.在C++中默认产生6个类成员函数,即缺省函数,它们分别是:
1.缺省构造函数
2.缺省拷贝构造函数
3.缺省析构函数
4.缺省赋值运算符
5.缺省取址运算符
6.缺省取地址运算符
二,const对于空类,编译器不会生成任何的成员函数,只会生成1个字节的占位符。
有时可能会以为编译器会为空类生成默认构造函数等,事实上是不会的,编译器只会在需要的时候生成6个成员函数:一个缺省的构造函数、一个拷贝构造函数、一个析构函数、一个赋值运算符、一对取址运算符和一个this指针。
1.构造函数定义及调用
1) c++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的函数叫做析构函数;
2) 构造函数在定义时可以有参数;
3) 没有任何返回类型的声明
2.缺省拷贝构造函数
拷贝构造函数的目的就是完成对一个对象的拷贝,一般在一下三种场景下会调用该对象的拷贝构造函数:
1)函数返回类型是类的对象时
2)函数的参数是类的对象,调用该函数时会调用该类的拷贝构造函数
3)使用一个对象去初始化类的另一个对象时 F a = new F(1,2); F b = a; / F b(a) 注意必须要在类的初始化中使用,不是类的赋值注:为什么自定义拷贝构造函数必须是引用传递(&)而不能是值传递?因为防止无限递归,因为如果是值传递则会再一次调用拷贝构造函数
3.析构函数的定义及调用
c++中的类可以定义一个特殊的成员函数清理对象,这个特殊的成员函数叫做析构函数 2) 析构函数没有参数也没有任何返回类型的声明
析构函数在对象销毁时自动被调用
4.缺省赋值运算符
运算符重载函数名字为:关键字operator后面接需要重载的运算符符号。函数原型:返回值类型operator操作符(参数列表)赋值运算符主要有四点:
1)参数类型
2)返回值
3)检测是否自己给自己赋值
4)返回*this
5)一个类如果没有显式定义赋值运算符重载,编译器也会生成一个,完成对象按照字节序的值拷贝。
5.缺省取址运算符
取地址成员函数,分为两种,普通取地址操作符、const取地址操作符。取地址是什么意思呢?就是返回当前对象的地址,对于成员函数来讲,this指针就是它的地址,需要返回指针。
6.this指针有哪些特性呢
1)this是一个指针,它时时刻刻指向你这个实例本身。
2)this指针的类型 类类型 *const
3)this指针并不是对子昂本身的一部分,不影响sizeof的结果
4)this指针的作用域在类成员函数的内部
5)只有在类的非静态成员函数中才可以使用,其它任何函数都不可以
————————————————
版权声明:本文为CSDN博主「懒羊羊z」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_55660421/article/details/119388034