类的成员变量存放在堆或栈上,而成员函数存放在代码段上,所有的对象共享成员函数
像Test(1,2);这种为匿名对象,特别之处是:这一行代码结束时,就自动调用析构函数;而Test t2(3,4);就是从代码开始创建一个对象,直到函数结束才被释放。
Test t3(6,4); <<==== >> Test t3 =Test(6,4);
#include <iostream>
using namespace std;
class Test
{
private:
int m_a;
int m_b;
public:
Test(int a);
Test(int a, int b);
Test(const Test &t); //拷贝构造函数
~Test(); //析构函数
void print();
};
Test::Test(int a)
{
cout << "Test constructor1!" << endl;
m_a = a;
Test(1,2); //匿名构造函数 生命值在这一句话后结束
}
Test::Test(int a, int b)
{
cout << "Test constructor2!" << endl;
m_a = a;
m_b = b;
}
Test::Test(const Test &t)
{
cout << "Copy constructor!" << endl;
}
Test::~Test()
{
cout << "Test destruct!" << endl;
}
void Test::print()
{
cout << "m_a = " << m_a << endl;
cout << "m_b = " << m_b << endl;
}
int main()
{
Test(1,2);
cout << "***********" << endl;
Test t1(2,3);
Test t2(3,4);
Test t3=Test(4,5);
cout << "***********" << endl;
Test t4(3);
t4.print();
return 0;
}