html border新手入门--html colors函数详解
01、什么是html colors函数
html colors函数是类的一个成员函数,名字由波浪号接类名构成,没有返回值,不接受参数,一个类只一个html colors函数。创建对象时系统会自动调用构造函数进行初始化工作,同样,销毁对象时系统也会自动调用一个函数来进行清理工作,例释放分配的内存、关闭打开的文件等,这个函数就是html colors函数。
注意:html colors函数没有参数,不能被重载,因此一个类只能有一个html colors函数。如果用户没有定义,编译器会自动生成一个默认的html colors函数。
02、html colors函数完成什么工作
在构造函数中,成员的初始化时在函数体执行前完成的,且按照他们在类中的顺序进行初始化。在html colors函数中,先执行函数体,再按照初始化顺序的逆序销毁成员。
html colors函数销毁类类型成员时执行成员自己的html colors函数,内置类型(包括指针)则什么也不做,智能指针是类类型,会被自动销毁。
03、html colors函数什么时候被调用
变量在离开其作用域时被销毁。
当一个对象被销毁时,其成员被销毁。
容易起被销毁时,其元素也被销毁。
对于动态分配的对象,当对指向它的指针使用delete运算符时被销毁。
对于临时对象,创建它的完整表达式结束时被销毁。
派生类在销毁时,派生类的html colors函数先执行,再是基类的html colors函数,以此类推,沿着继承体系的反方向直到最后。
04、html colors函数的执行时机
html colors函数在对象被销毁时调用,而对象的销毁时机与它所在的内存区域有关。在所有函数之外创建的对象是全局对象,它和全局变量类似,位于内存分区中的全局数据区,程序在结束执行时会调用这些对象的html colors函数。
在函数内部创建的对象为局部对象,它和局部变量类似,位于栈区,函数执行结束时会调用这些对象的html colors函数。
new创建的对象位于堆区,通过delete删除时才会调用html colors函数;如果没有delete,html colors函数就不会被执行。
下面的例子演示了html colors函数的执行。
#include <iostream>
#include <string>
using namespace std;
class Demo{
public:
Demo(string s);
~Demo();
private:
string m_s;
};
Demo::Demo(string s): m_s(s){ }
Demo::~Demo(){ cout<<m_s<<endl; }
void func(){
//局部对象
Demo obj1("1");
}
//全局对象
Demo obj2("2");
int main(){
//局部对象
Demo obj3("3");
//new创建的对象
Demo *pobj4 = new Demo("4");
func();
cout<<"main"<<endl;
return 0;
}