当前位置:  开发笔记 > 编程语言 > 正文

在C++中是否可以拥有定义的纯虚函数?

如何解决《在C++中是否可以拥有定义的纯虚函数?》经验,为你挑选了2个好方法。

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

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



1> Bill the Liz..:

实际上,您可以将一个函数声明为纯虚函数,并在基类中定义它的实现.

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();
}



2> Firas Assaad..:

您可以为纯虚函数提供定义.检查GotW#31以获取更多信息.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有