如果类中一个构造函数都没有,系统会自动添加一个 无参构造数,该函数什么都不做
如果类中没有析构函数,系统会自动添加一个析构函数,该函数什么都不做
// new : 创建会自动调用构造函数
// delete : 释放对象的时候会自动调用析构函数
构造函数:在创建的对 象的时候系统自动调用的函数===> 初始化对象
1、构造函数的函数名和类型相同
2、没有返回值
3、构造函数可以重载
关于构造函数:
1、如果某个构造函数被调用了,则-定是有一个新对象被创建对象
2、如果创建一个新的对象,必定会调用某个构造函数
析构函数:当对象波释放的时候,系统会调用对象的析构函数
1、函数名: ~类名
2、没有返回值
3、没有参数===> 不能重载, 析构函数只能有一个
~Test()
{
if (m_pa != nullptr)
delete m_pa;
m_pa = nullptr;
printf (" : a = %d, b = %d\n", m_a, m_b);
}
构造雨数和析构函数的调用顺序:先构造的对象后析构
赋值方法:
1、使用括号进行赋值
2、等号法
Test t;
t.show();
// 1、使用括号进行赋值
Test t1(10,20);
t1.show();
// 2、等号法
Test t2 = Test(3,4);
t2.show();
Test t3 = Test(123);
t3.show();
//该方法只能调用单个参数的构造函数
Test t4 = 10; // 等价于 Test t4 = Test(10);
t4.show();
Test t5 = (10, 20);
t5.show();