#ifndef _TEST__ #define _TEST__ #include #include class Test { public: Test(); // 默认构造函数 ~Test(); // 默认析构函数 Test(const Test &ex); // 拷贝构造函数,默认形式 Test( Test &ex); // 拷贝构造函数 //Test(Test ex); // 不合法,防止递归无限调用 Test& operator = (const Test& ex); // 赋值运算,默认形式 Test& operator = (Test& ex); // 赋值运算 //Test& operator = (const Test ex); // 赋值运算,合法,引用作为重载条件,调用是需要转型 //Test operator = (const Test& ex); // 赋值运算,合法,但是返回不能作为重载条件 Test& operator = (int k); // 赋值运算 // ... static Test func1(Test ex); static Test& func2(Test &ex); private: int key; std::string str; static int num; // 用于计数 }; #endif Test::Test() { key = ++num; std::stringstream ss; ss<key = ++num; std::stringstream ss; ss<str = ss.str(); std::cout<<"\tTest(const Test &ex):"<key = ++num; std::stringstream ss; ss<str = ss.str(); std::cout<<"\tTest(Test &ex):"<key = k; this->str = "k"; return *this; } Test Test::func1(Test ex) { std::cout<<"\tTest func1(Test ex)"<