分类: C/C++
2008-08-07 17:34:58
// a.h class A { public: A(); A(int nTest); A(const A& a); virtual ~A(); A operator=(const A& a); // A& operator=(const A& a); private: int m_nTest; public: void printit(); }; } // a.cpp A::A(int nTest) { m_nTest = nTest; cout << "constructor A Value is executed now!" << endl; } A::A(const A& a) { this->m_nTest = a.m_nTest; cout << "Copy constructor A is executed now!" << endl; } A::A() { cout << "constructor A Default is executed now!" << endl; } A::~A() { cout << "Destructor A is executed now!" << endl; } A A::operator=(const A& a) // A& A::operator=(const A& a) { if (this==&a) return *this; this->m_nTest = a.m_nTest; cout << "Assignment A is executed now!" << endl; return *this; }在main()函数中调用
A a(100),b(99),c(98); a = b = c; a.printit(); b.printit(); c.printit();结果为:
constructor A Value is executed now! constructor A Value is executed now! constructor A Value is executed now! Assignment A is executed now! Copy constructor A is executed now! Assignment A is executed now! Copy constructor A is executed now! Destructor A is executed now! Destructor A is executed now! 99 99 98 Destructor A is executed now! Destructor A is executed now! Destructor A is executed now! |