【发布时间】:2014-08-22 08:10:18
【问题描述】:
我尝试在论坛中窥探类似的问题,但没有成功。
我的 C++ 程序中有一个嵌套类。我正在尝试从嵌套类中的函数访问父类的变量,但遇到以下错误
ERROR: A non static member reference must be relative to a specific object
我尝试访问的变量是受保护的,嵌套类是公共的(函数也是如此)
以下是描述(或尝试)场景的代码 sn-p
头文件
class A
{
protected:
D x;
public:
int func1(int a);
class B : protected C
{
int func2(int a);
}
}
CPP 文件
int A::func1(int a)
{
x = 5;
B z;
int b = z.func2(a);
}
int A::B::func2(int a)
{
int c = x.getValue(a); /* ERROR: A non static member reference
must be relative to a specific object */
}
从某个地方
A anObject;
anObject.func1(7);
如果重要的话,getValue() 是一个公共函数。 既然我通过一个对象调用 A 的函数,并且通过那个 B 的函数,那不应该链接到那个对象并让我访问那个非静态成员吗?
【问题讨论】:
-
没有
A::func2,所以我不确定你期望int b = func2(a)会打电话给我。
标签: c++ nested-class access-modifiers