c++类
类
构造函数
和类名相同,无返回值的叫做构造函数。
eg.
在这个例子里,创建了Circle
的类,并创建了2个构造函数Circle()
(构造函数前无函数声明),2个构造函数分别有参数和无参数,重载函数对应初始值和设定值。
当创建对象circle1
执行Circle circle1
时会执行构造函数,无参数传入则调用无参的构造函数。
当创建对象circle2
执行Circle circle2(25)
时会执行构造函数,有参数传入则调用有参对应的的构造函数。
this->
用于指向对象内的变量,可以区分。
eg
1 | fan(int speed,bool on,double radius){this->speed = speed,this->on = on,this->radius = radius;} |
UML类图
析构函数
constructor 构造函数(可以多个,可以重载)
destructor 析构函数(只有一个,不能带参)
类中,系统自带构造函数和析构函数,如果手动创建,则不自带。
~类名(){}
归还类所占用的空间
析构函数(Destructor)是在对象被销毁时自动调用的特殊成员函数。它的主要作用是执行一些清理工作,释放对象在生命周期中分配的资源,例如内存、文件句柄、网络连接等。析构函数的名称与类名相同,但在名称前加上波浪号(~)。
当对象超出其作用域,程序退出,或者通过delete运算符释放动态分配的内存时,析构函数会被调用。这确保在对象生命周期结束时,相关的资源可以得到正确的释放,防止资源泄漏。
而且先调用的,后撤销, 后调用的,先撤销
对象超出其作用域: 当一个对象在一个代码块中声明并创建,当该代码块执行结束时,对象就超出了其作用域。此时,析构函数会被调用,{}块内的代码将执行。
1 | { |
delete运算符释放动态分配的对象: 如果对象是通过new运算符动态分配内存而创建的,当使用delete运算符释放该对象时,析构函数会被调用。
1 | MyClass* objPtr = new MyClass(); // 构造函数被调用 |
程序结束: 当整个程序结束运行时,全局对象的析构函数会被调用。
1 | MyClass globalObj; // 构造函数被调用 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 polar-bear~Blog!
评论