Как я могу использовать значение из другого класса в C ++? - PullRequest
0 голосов
/ 09 января 2019

У меня есть основная функция и класс, я пытаюсь использовать int, который находится в этом другом классе в main.

main.cpp

#include <iostream>
#include "main.hpp"

using namespace std;

int main()
{
    cout << MainInt::x << endl;
    return 0;
}

main.hpp

class MainInt
{
public:
    MainInt();
    int x;
};

MainInt::MainInt()
{
    x = 1;
}

То, как я сейчас это делаю, не кажется правильным. Я чувствую, что cout << MainInt::x << endl; просто вызывает переменную х.

В настоящее время я получаю error: invalid use of non-static data member 'x'

Мне нужно вызвать x , который является нестатической переменной в MainInt , чтобы я мог вывести значение x на консоль. Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Используя решение Мэтью Брухера , я сделал следующее

main.cpp

#include <iostream>
#include "main.hpp"

using namespace std;

int main()
{
    MainInt x;
    cout << x.x << endl;
    return 0;
}
0 голосов
/ 09 января 2019

Либо x является статической переменной (также известной как глобальная переменная), и в этом случае это должно быть:

class MainInt
{
public:
    MainInt();
    static int x;
};

// in cpp:
int MainInt::x = 1;

или это традиционная переменная, как в конструкторе. В этом случае вам нужно создать экземпляр объекта:

MainInt variable;
cout << variable.x << endl;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...