gpt4 book ai didi

c++ - 限制对C++中纯虚函数的派生类的访问

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

class A
{
public:
void virtual magic() = 0;
void bar()
{
magic(); // this should be legal
}
};

class B: public A
{
public:
void magic()
{
cout<<"implement magic here"<<endl;
}
};

class C: public B
{
void foo()
{
magic(); // this should not be allowed, i.e. create compile-time error
}
};

因此 B 的纯虚拟基类 A 应该可以访问 magic(),但不能访问任何派生类 C B。这可以使用访问说明符和/或 friend 声明或任何其他方式来实现吗?

最佳答案

基本上,您不能减少虚方法的可见性。一旦它在 A 中公开,就没有整洁的方法使其在任何派生类中 protected 或私有(private)。

关于c++ - 限制对C++中纯虚函数的派生类的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18960238/

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