我遇到以下问题。
我有一个 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
}
}
}
有更好的方法可以做到这一点还是应该坚持下去?提前谢谢。
答案 0 :(得分:0)
使用C ++,无法扩展'一个类声明,无论该类是否嵌套。所以评论中的问题是:
我要问的是,是否有可能在Derived中扩展A而不是 创建一个新类
答案是否定的。您的解决方案(将Base::A
定义为{{1}}的派生类)实际上正在创建另一个嵌套类,这是正确的。