0
我已經定義了一個普通的類T:傳遞和返回引用
class T {
public:
T() { cout << "default constructor " << this << "\n" }
T(const & T a) { cout <<"constructor by copy " << this << "\n"}
~T() { cout << "destructor "<< this << "\n"}
T & operator=(T & a) {
cout << " assignemnt operator :" << this << " = " << &a << endl;}
};
而且有4個功能,其中之一是錯誤的:
T f1(T a){ return a; }
T f2(T &a){ return a; }
T &f3(T a){ return a; }
T &f4(T &a){ return a; }
有誰知道哪一個是錯的?
順便說一句:在'operator ='中,'T&a'通常是const。 – luiscubal
這是一個糟糕的問題 - 任何編譯器都會給出答案! –
'T(const&T a)'在'T'的類定義中是亂碼。 –