gpt4 book ai didi

c++ - 从公共(public)派生类访问 protected 成员

转载 作者:行者123 更新时间:2023-11-28 04:56:01 26 4
gpt4 key购买 nike

尝试从继承 public 的派生类的方法访问基类的 protected 成员时出现错误。

我通过引用将基类的两个对象传递给派生类的方法,并尝试访问对象的 protected 成员。然而,编辑提示。

总的来说,这是我正在尝试做的事情:

class A {
protected:
int x;
};

class B:public A
{
public:
void test(A &obj1, A &obj2)
{
obj1.x = 1;
obj2.x = 2;
}
};

this是编辑的提示:

 int A::x
protected member A::x (declared at line 5) is not accessible though "A" pointer or object.

我的代码有什么问题,我该怎么做才能更正它?

谢谢。

最佳答案

您只能访问与派生对象类型相同的类的基类保护成员。您将必须创建一个公共(public)方法来获取成员或其他解决方法。假设您有另一个类 C,它继承了 A 作为私有(private)类。您可以将 C 作为 A 引用传递给 B 方法,但基类成员将不可访问。如果引用传递给 B 引用的 B 方法,那么您将能够访问其中的 protected 成员。

关于c++ - 从公共(public)派生类访问 protected 成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47116046/

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