非法引用非静态成员

kar*_*ari 2 c++ visual-c++

我试图引用mycustompath来自当前类的不同类的cstring .

CString test = CBar::mycustompath + _T("executables\\IECapt");
Run Code Online (Sandbox Code Playgroud)

但我得到了这个错误:

错误C2597:非法引用非静态成员'CBar :: mycustompath'c:\ work\b.cpp 14

如何解决这个问题?

Rup*_*Rup 6

这意味着mycustompath是特定CBar对象的属性,而不是CBar类的属性.您需要实例化一个CBar类

CBar* myBar = new CBar();
CString test = myBar->mycustompath + _T("executables\\IECapt");
Run Code Online (Sandbox Code Playgroud)

或引用你已经拥有的,或者,如果mycustompath没有因CBar对象而异,你可以在类中将其更改为static:

class CBar
{
public:
    static CString mycustompath;
}
Run Code Online (Sandbox Code Playgroud)