[英]how to use operator overloading in c++ to display the a class (game board)
[英]How can I use operator overloading function with a class in C++?
我在一個類中做了一個運算符重載函數。 我創建了另一個函數,該函數可以調用類中的重載函數。
我想使用在主函數中調用操作重載函數的函數,所以我在主函數中這樣寫:
#include <iostream>
...
class Zealot {
int x;
....
void operator++() {
Zealot s;
s.x = -50;
for (auto i = 0; i < 2; ++i, tail.push_back(s));
}
void Collision() {
...
(*this)++; // Error : C2676
...
}
...
};
Zealot z;
int main() {
z.Coliision();
}
我收到了錯誤C2676,因此無法編譯源代碼。
我應該怎么做才能使其正常工作? 我需要你的大力幫助。
重載的是預增量運算符。
您使用的是后增量運算符。
您可以使用預增量運算符:
++(*this);
或實施后遞增運算符:
void operator++(int) { ... }
要習慣用法,您應該更改那些函數的返回值。
Zealot& operator++() { ... }
Zealot operator++(int) { ... }
您可以在http://en.cppreference.com/w/cpp/language/operators上了解有關運算符重載的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.