的兩個值我正在學習C++中的運算符重載功能,並且遇到了一個問題。這裏是我的代碼:運算符開發比較來自
template <typename T>
class W
{
public:
bool operator==(W&);
T x;
};
template <typename T>
bool W<T>::operator==(W& w2)
{
printf("\n%d, %d\n", x, w2.x);
if(x == w2.x) return true;
else return false;
}
int main()
{
W<int>* w1 = new W<int>;
W<int>* w2 = new W<int>;
w1->x = 10;
w2->x = 10;
if(w1 == w2) printf("same");
else printf("not");
}
結果是'不'。並且printf函數在重載的bool函數中未被調用。如果我以這種方式初始化對象:
W<int> w1;
W<int> w2;
w1.x = 10;
w2.x = 10;
它的工作原理。但在我的情況下,我只使用第一個示例對象(在我的其他項目中)。所以我的問題是我如何傳遞對象,它會工作。謝謝。