gpt4 book ai didi

c++ - 扩展嵌套类方法

转载 作者:行者123 更新时间:2023-11-30 02:43:07 25 4
gpt4 key购买 nike

我在嵌套类中遇到过虚方法。

##classone.h

class ClassOne: {
public:
class InnerClass{
public:
virtual void method1();
...

##classone.cpp
void ClassOne::InnerClass::method1()
{
...
}

我正在对 ClassOne 进行子类化,需要扩展 method1()。在那种情况下需要对嵌套类做什么?

我尝试过的

##subclassone.h

class SubClassOne: public ClassOne{
public:
virtual void method1();

##subclassone.cpp

void SubClassOne::InnerClass::method1()
{
##New implementation
}

但这给出了 ClassOne::InnerClass::method1() 的多个定义

最佳答案

method1 属于 ClassOne::InnerClass,而不是 ClassOne。当您从 ClassOne 继承时,基类的嵌套类也成为派生类的成员,您可以通过使用 ClassOne::子类一::。因此,关于 method1 的双重定义错误。

您还需要对 InnerClass 进行子类化。如果您仍然希望从 ClassOne 派生,它看起来像这样:

class ClassOne {
public:
class InnerClass {
public:
virtual void method1();
};
};

void ClassOne::InnerClass::method1()
{
}

class SubClassOne : public ClassOne {
class DerivedInnerClass : InnerClass { //
virtual void method1();
};
};

void SubClassOne::DerivedInnerClass::method1()
{
}

关于c++ - 扩展嵌套类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26450244/

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