在派生类中更改嵌套类c ++ 11

时间:2016-05-16 14:31:32

标签: c++ c++11

我遇到以下问题。

我有一个 Base 类,嵌套类 A 。我想在继承它的 Base 之外创建第三个类 Derived 。但是我需要添加几个成员变量,以及更改嵌套类的一些方法(即构造函数来初始化它们),但是无法找到它们。

我设法让它有点工作的一种方法是在派生中声明一个新的嵌套类,它继承自 A ,但这让我感到困惑的是实际发生的事情。我留下的印象是,我实际上有两个嵌套类,这不是我想要的。

class Base
{
    class A
    {
        //memberVariables
    public:
        A()
        {
            //initialize memberVariables
        }
    }
}

class Derived : public Base
{
    class B : public A
    {
        //newMemberVariables
    public:
        B() : A()
        {
            //initialize newMemberVariables
        }
    }
}

有更好的方法可以做到这一点还是应该坚持下去?提前谢谢。

1 个答案:

答案 0 :(得分:0)

使用C ++,无法扩展'一个类声明,无论该类是否嵌套。所以评论中的问题是:

  

我要问的是,是否有可能在Derived中扩展A而不是   创建一个新类

答案是否定的。您的解决方案(将Base::A定义为{{1}}的派生类)实际上正在创建另一个嵌套类,这是正确的。