這是在cplusplus.com上找到的示例代碼,用於重載操作符。我不確定「CVector(){};」意味着這裏。它看起來不像一個構造函數,當我刪除這一行時,編譯器給我錯誤。類名後加空括號和空花括號
// overloading operators example
#include <iostream>
using namespace std;
class CVector {
public:
int x,y;
CVector() {}; <-- This Line
CVector (int a,int b) : x(a), y(b) {}
CVector operator + (const CVector&);
};
CVector CVector::operator+ (const CVector& param) {
CVector temp;
temp.x = x + param.x;
temp.y = y + param.y;
return temp;
}
int main() {
CVector foo (3,1);
CVector bar (1,2);
CVector result;
result = foo + bar;
cout << result.x << ',' << result.y << '\n';
return 0;
}
這是一個默認的構造函數。你不需要分號。另外,您的運營商+理想情況下不應該是會員功能。和cplusplus.com不是一個很好的學習資源。 –
必須有一個副本,但我找不到一個... – SergeyA
最好用初始化列表填寫'x'和'y' –