#c #oop #operator-overloading
Вопрос:
Это мое Unary operator.cpp
досье
#include <iostream>
using namespace std;
class space{
int x;
int y;
int z;
public:
void getdata(int a, int b, int c){
x=a;
y=b;
z=c;
}
void display(){
cout<<x<<" ";
cout<<y<<" ";
cout<<z<<"n";
}
void operator-(){
x=-x;
y=-y;
z=-z;
}
};
int main(int argc, char *argv[]){
space S;
S.getdata(10,-20,30);
cout<<"S: ";
S.display();
-S;
S.display();
return 0;
}
Это мой код для перегрузки Унарного оператора. Когда я компилирую этот код в VS Code, это иногда появляется в консоли отладки Input first number: =thread-exited,id="2",group-id="i1"
. И иногда код успешно компилируется, показывая это сообщение The program 'e:C Unary operator.exe' has exited with code 0 (0x00000000)
. Но когда я запускаю его в блоках кода, он компилируется, и вывод отображается так, как ожидалось. Я думаю, что с кодом VS что-то не так. Пожалуйста, помогите.
Комментарии:
1. Что вы ожидаете увидеть в консоли отладки? Вы ищете терминал, в котором вместо этого запускается программа?
2. Код выхода
0
означает , что он успешно завершен. Как вы думаете, этого не должно быть?3. код выглядит нормально.
operator-
следует что-то вернуть, но это всего лишь вопрос условности. «Введите первое число:» похоже, это из другого кода.4. это не проблема в вашем текущем коде, но вам следует написать конструктор, который инициализирует элементы
5. Возможно, вам придется смыть
cout
.