42c*_*kes 4 c++ access-modifiers nested-class
我试图在论坛中窥探一个类似的问题,这可能会帮助我取得成功.
我的C++程序中有一个嵌套类.我试图从嵌套类中的函数访问父类的变量,但我遇到以下错误
ERROR: A non static member reference must be relative to a specific object
Run Code Online (Sandbox Code Playgroud)
我试图访问的变量受到保护,嵌套类是公共的(它的功能也是如此)
以下是描述(或努力)该场景的代码片段
头文件
class A
{
protected:
D x;
public:
int func1(int a);
class B : protected C
{
int func2(int a);
}
}
Run Code Online (Sandbox Code Playgroud)
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 */
}
Run Code Online (Sandbox Code Playgroud)
从某个地方
A anObject;
anObject.func1(7);
Run Code Online (Sandbox Code Playgroud)
如果重要的话,getValue()是一个公共函数.因为我通过一个对象调用A的函数,并且通过那个B的函数,如果没有链接到那个对象并让我访问那个非静态成员?
C++ 内部类与Java嵌套类不同.另一个内部没有任何对象.它们只是名称空间是另一个类的类,如Java静态内部类.
您无权访问该成员,x因为它属于A一个完全不相关的类,它没有任何内容(继承,复合等)B.
| 归档时间: |
|
| 查看次数: |
2386 次 |
| 最近记录: |