1
我有以下代碼:同類型模板類的內部函數模板
#include <iostream>
using namespace std;
template<typename T> class myclass {
public:
T data;
myclass(T const & _data = T()) : data(_data) {}
template<typename U> myclass<T> & operator=(myclass<U> const & rhs) {
cout << data << " = " << rhs.data << endl;
return *this;
}
};
int main() {
myclass<double> first(1);
myclass<float> second(2);
myclass<double> third(3);
first=second;
first=third;
}
現在,althought它編譯完美,輸出只是:
1 + 2
爲什麼不先=第三打電話給
myclass<double> & operator=(myclass<double> const & rhs)
?
謝謝,我現在明白了 – lexsintra
我實際上已經嘗試過類似的功能,但正在尋找一種「更清潔」的解決方案。 – lexsintra