C++自学笔记 构造与析构;

构造与析构

类不是实体;对象属于类;函数属于类 ;

用不同的对象调用同一个类里面的函数的时候,函数知道是哪一个对象在调用它

 

关键字 this

this是一个指针

 

Point a;

a.print();

<=>等价于

Point::print(&a)

 

C++在声明一个变量的时候,只是告诉你存在这个变量,并且C++不会提前把变量所在的地方清空。因此变量声明后的值不一定是0。

而同样是OOP 语言的java就会在声明 的时候提前把变量所在的地方清理为0,因此变量声明后的初始值就是0。

对于这种做法,C++的效率更高,因为不用释放内存,这也是C++ 运行高效的原因。

 

init()函数的用途就是来解决上述问题,

在C++不提前清理的机制下,我们必须主动初始化变量的值。

 

 但是,这个init函数是需要程序员拥有主动意识去写的,主动初始化变量 

所以我们使用constructor function 来避免这个问题,

使得一个变量在创建出来之后就被初始化。

constructor (function):构造函数;

申请资源:

在开始时调用

构造函数与类同名;

 

 

 当你定义了一个类的变量时,就自动使用了构造函数;

但是通常,构造函数是X(int i);

然后在定义变量时是这样:X a(12);

因此12会被传给i;

destructor (function):析构函数:

在结束时调用

释放资源

 

posted @ 2022-09-25 17:39  slowlydance2me  阅读(24)  评论(0编辑  收藏  举报