gpt4 book ai didi

c++ - 虚函数触发 protected 变量的编译错误

转载 作者:行者123 更新时间:2023-11-30 05:26:27 24 4
gpt4 key购买 nike

<分区>

class B
{
protected:
int x;
public:
B(int i=28) { x=i; }
virtual B f(B ob) { return x+ob.x+1; }
void afisare(){ cout<<x; }
};
class D: public B
{
public:
D(int i=-32):B(i) {}
B f(B ob) { return x+ob.x-1; }
};

void test6()
{
B *p1=new D, *p2=new B, *p3=new B(p1->f(*p2));
p3->afisare();
}

main 只是调用函数 test6();我的问题是,为什么编译器会在第 3 行抛出错误,即int x 声明,带有消息:

In member function 'virtual B D::f(B)' : 
error: 'int B::x' is protected
error: within this context

PS:示例来自考试,因此错误的缩进和其他“泄漏”是故意的。

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