Test 类,可以报告对象(每个对象一个识别号)的默认构造、复制构造、赋值、析构 (代码来源于C++沉思录)
#include <iostream>
class Test{
public:
Test();
Test(const Test&);
Test& operator=(const Test&);
~Test();
private:
static int count; //类对象计数
int id; //类对象id编号
};
int Test::count = 0;
Test::Test(){
id = ++count;
std::cout << "Test " << id
<< " default constructor\n";
}
//复制控制
Test::Test(const Test& t){
id = ++count;
std:: cout << "Test " << id
<< " copied from " << t.id << std::endl;
}
Test& Test:: operator=(const Test& t){
std:: cout << "Test " << id
<< " assigned from " << t.id << std::endl;
return *this;
}
Test::~Test(){
std::cout << "Test " << id << " destroyed" << std::endl;
}
int main()
{
Test s;
Test t(s);
s = t;
return 0;
}