gpt4 book ai didi

c++ - 从嵌套类的函数访问父类的非静态成员

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:18:57 27 4
gpt4 key购买 nike

我尝试在论坛中四处寻找类似的问题,但没有成功。

我的 C++ 程序中有一个嵌套类。我试图从嵌套类中的函数访问父类的变量,但遇到以下错误

ERROR: A non static member reference must be relative to a specific object

我试图访问的变量是 protected ,嵌套类是公共(public)的(它的函数也是如此)

以下是描述(或努力)场景的代码片段

头文件

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() 是一个公共(public)函数。由于我通过一个对象调用 A 的函数,并通过 B 的函数,难道不应该将它链接到该对象并让我访问该非静态成员吗​​?

最佳答案

C++ 内部 类不像 Java 嵌套类。另一个里面没有物体。它们只是命名空间是另一个类的类,例如 Java 静态内部类。

您无权访问成员 x,因为它属于 A,这是一个完全不相关的类,与(继承、复合等)无关B

关于c++ - 从嵌套类的函数访问父类的非静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24515806/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com