我可以这样做吗?

class A { ... };

class B : private A
{
    const A &foo() const
    {
        return *((const A *)this);
    }
};

我可以接受从基类私有(private)继承的子类并将其转换为其基类的公共(public)版本吗?如果没有虚拟方法,我可以这样做吗?

我的猜测是肯定的,但我想确保它安全/可移植。

最佳答案

是的,您可以:标准的§5.4/7:



但是不要尝试这样做,因为它破坏了私有(private)继承的目的。

关于c++ - 我可以使用C样式转换将派生类转换为私有(private)基类吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17925124/

10-11 23:11
查看更多