gpt4 book ai didi

c++ - 在 C++ 中是否可以定义一个纯虚函数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:06 24 4
gpt4 key购买 nike

这是交易。我有一个很大的类层次结构,我有一个一直扩展的方法。该方法总是必须在每个新级别查看一个或两个以上的变量,这些变量取决于层次结构中的实际类。我想要做的是检查这两个额外的变量,然后调用同一函数的父类(super class)版本。我希望能够定义这个函数,因为它的所有直接子级都将使用它,但我想强制该类的任何子级必须重新定义该方法(因为他们将不得不查看他们的新数据成员)

那我该怎么写呢?我通常使用 =0;在 .h 文件中,但我假设我不能使用它并定义它...

最佳答案

实际上,您可以将一个函数声明为纯虚函数,并仍然在基类中为其定义一个实现。

class Abstract {
public:
virtual void pure_virtual(int x) = 0;
};

void Abstract::pure_virtual(int x) {
// do something
}


class Child : public Abstract {
virtual void pure_virtual(int x);
};

void Child::pure_virtual(int x) {
// do something with x
Abstract::pure_virtual();
}

关于c++ - 在 C++ 中是否可以定义一个纯虚函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/348320/

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