Я пытаюсь перегрузить оператор + = для классов gridCoord и гендир в следующем коде:+ = оператор перегрузки
struct gridCoord{
unsigned x;
unsigned y;
}
inline gridCoord operator +(const gridCoord l,const genDir& r){
// This operator is tested and works
}
inline void operator += (gridCoord l,const genDir& r){
l = l+r;
std::cout<<l;
}
Оператор работ +, однако, когда я запускаю код ниже:
int main(){
gridCoord coord(1,0);
genDir gd;
coord += gd;
std::cout<< coord;
std::cin.get();
return 0;
}
я получить выход
x: 2 y: 0
x: 1 y: 0
Я ожидал бы
x: 2 y: 0
x: 2 y: 0
Если бы он работал. Кажется, что установленный оператор + = фактически не изменяет левый аргумент, как предполагается. Есть идеи, почему это так? Благодаря!
Вы знаете, почему 'ничтожной F (интермедиат а) {а = 1; } int main() {int x = 0; F (X); cout << x; } 'выходы 0? То же самое. – molbdnilo
В настоящее время все так одержимы «genDir». –