c++之构造函数

构造函数

构造函数也叫构造器,在对象创建的时候自动调用,一般用于对象成员的初始化。

  • 构造函数与类名同,没有返回值,可以重载,可以有参数。
  • 一旦自定义了构造函数,就必须使用其中一个初始化对象。
  • 通过malloc创建的对象不会调用构造函数(new会调用)
  • 在某些特定情况下,编译器才会为类生成空的五参构造函数.
  • 如果自定义了构造函数,除了全局区(初始化0),其他都不会初始化成员变量。


    image.png

    image.png

析构函数

  • 在对象销毁后自动调用,一般用于对象的清理。
  • 析构对象以~开头,无参。
  • malloc创建的也不会调用析构函数。
~person();

构造函数和析构函数要声明为public,才能被外界正确使用。

  • 析构函数一般做内存清理
    析构函数用例:
struct Car{
 Car(){
cout<"调用构造"<<endl;
   }
~Car(){
cout<"调用析构"<<endl;
   }
}

struct Person{
int age;
 Person(){
Car *m_car = nullptr;
cout<"调用构造"<<endl;
m_car = new Car();
   }
~Person(){
cout<"调用析构"<<endl;
delete car;
   }
}
image.png
  • 对象内部创建的空间,由对象内部回收
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容