第6章 初始化与清除

mac2022-06-30  74

  用构造函数确保初始化

  在一个对象被定义时:

X a;

  这时就好像a是一个int一样:为这个对象分配内存。但是当程序执行到a的序列点执行的点时,构造函数自动被调用,因为编译器已悄悄地在a的定义点处插入了一个X::X()的调用。就像其他成员函数被调用一样。传递到构造函数的第一个(秘密)参数是this指针,也就是调用这一函数的对象的地址,不过,对构造函数来说,this指针指向一个没有被初始化的内存块,构造函数的作用就是正确的初始化该内存块。

 

  默认构造函数

   记住,一旦有了构造函数,编译器就会确保不管在什么情况下它总会被调用。

 

  默认的构造函数非常重要,所以当一个结构或类中没有构造函数时,编译器会自动为它创建一个。如:

class V { int i; // private }; // No constructor int main() { V v,v2[10]; }

  然而,一旦有构造函数而没有默认构造函数,上面的对象定义就会产生一个编译错误。

转载于:https://www.cnblogs.com/sheshiji/p/3427691.html

最新回复(0)