Введите первое число: =выход из потока,идентификатор=»2″,идентификатор группы=»i1″

#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 .