为什么访问不了其他类的公有成员?

rbofnjtu 2003-04-02 10:03:27
我在工程中一个类里面给另外一个类的一个公有成员赋值,为什么总是提示出错:
error C2597: illegal reference to data member 'CMoniteView::m_strPath' in a static member function

我已经包含了头文件,而且我访问的函数也不是static型的呀!
...全文
93 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CCBeyond 2003-04-02
  • 打赏
  • 举报
回复
你是在静态成员函数中调用:CMoniteView::m_strPath = "aaa"; 的吧
由于CMoniteView::m_strPath 是非静态成员,所以无法访问,这是很正常的啊。

你只能把CMoniteView::m_strPath作为右值操作,不能在静态成员中给它赋值.

guangyinsuipian 2003-04-02
  • 打赏
  • 举报
回复
静态成员是通过类名访问的,就相当于大家共用一个,所以用类名就行。
非静态的要通过一个对象来访问的。right?
rbofnjtu 2003-04-02
  • 打赏
  • 举报
回复
我的工程里面有CMoniteView类,从CListView派生而来,CMoniteView类中有一个公有成员
CString m_strPath,我现在想在另外一个类里面给m_strPath赋值,
CMoniteView::m_strPath="aaa";
编译提示出错(错误如上)
是不是不能通过类名来访问非静态成员呀
isdong 2003-04-02
  • 打赏
  • 举报
回复
Compiler Error C2597
illegal reference to data member 'member' in a static member function

The identifier you specified is a member of the class. However, it is nonstatic and the current function is a static member function. To access the member, an instance of the class must be provided and accessed using the . or -> operators.

The specified identifier was not a member of a class, structure, or union.

A member access operator (. or ->) was used to refer to a function that was not defined as a member of the class, structure, or union.

The following code in a .cpp file will generate C2597:

struct s1 {
static void func();
int i;
};

void s1::func()
{
i = 1; // error C2597 here
}

darkhawk 2003-04-02
  • 打赏
  • 举报
回复
'CMoniteView::m_strPath'
是不是通过类去访问接口,而不是类实例啊,你应该写清楚点
isdong 2003-04-02
  • 打赏
  • 举报
回复
不能通过类名来访问非静态成员!
非静态成员是类的具体对象的成员,不是整个类的成员,静态成员是针对类的,所有类的成员共有一个静态成员

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧