недопустимая ссылка на нестатический член - PullRequest
2 голосов
/ 01 марта 2011

Я пытаюсь сослаться на строку mycustompath из другого класса из моего текущего класса.

CString test = CBar::mycustompath + _T("executables\\IECapt");

Но вместо этого я получил эту ошибку:

ошибка C2597: недопустимая ссылка на нестатический член 'CBar :: mycustompath' c: \ work \ b.cpp 14

Как это исправить?

Ответы [ 2 ]

6 голосов
/ 01 марта 2011

Это означает, что mycustompath является свойством определенного объекта CBar, а не свойством класса CBar. Вам нужно создать экземпляр класса CBar

CBar* myBar = new CBar();
CString test = myBar->mycustompath + _T("executables\\IECapt");

или ссылочный, который у вас уже есть, или, если mycustompath не зависит от объекта CBar, вы можете изменить его на статический в классе:

class CBar
{
public:
    static CString mycustompath;
}
3 голосов
/ 01 марта 2011

Это означает, что CBar::mycustompath не является статической переменной-членом CBar. Вам нужно создать экземпляр CBar для доступа к нему:

CBar bar;
CString test = bar.mycustompath + _T("executables\\IECapt");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...