覆盖C ++纯虚函数

问题描述 投票:0回答:1

我有以下课程:

模式类别h文件:

#pragma once

class Mode
{

public: 
    virtual int recv()  = 0;
};

模式类别cpp文件:->空

LocalMode类h文件:

#pragma once
#include "Mode.h"

class LocalMode: public Mode
{
private: 

public: 
    LocalMode();
    int recv();

};

LocalMode类cpp文件:

#include "LocalMode.h"

int LocalMode::recv(){
    return 0;
}

这是我的问题:

  1. 是否始终需要关键字“ override”?如果没有,什么是最佳做法?

  2. 主要问题:我知道上面的代码对我有用。但是我有一个问题,我基本上必须将纯虚函数的函数签名从基类“复制”到我的派生类中。如果我不知道基类具有哪些纯虚函数,会发生什么?

    我上面的实现意味着我必须了解基类中所有可用的纯虚函数。我试图通过Mode :: scope和LocalMode :: scope访问纯虚函数,但是在Visual Studio中,我只是收到一些错误消息(我认为这些错误消息与该问题无关)。

  3. 某些插件/ Intellisense?我记得在Java中,IntelliSense通常可以帮助我,并从abtract类中添加了所需的功能。尽管我知道Java在某种意义上(从继承类继承)与c ++有所不同,但是我也想知道是否有任何工具可以帮助我自动包括那些工具?

通过互联网滑行,我找不到任何示例。他们都假设,基类的所有纯虚函数都是已知的...我只是在想像一下,如果我有一个带有很多纯虚函数的抽象类,而我忘了只复制其中的一个,在实例化时我会得到一个错误...]

谢谢你。

我有以下类:Mode类h文件:#pragma一旦类Mode {public:virtual int recv()= 0; };模式类cpp文件:->空LocalMode类h文件:#pragma一旦#include ...

c++ inheritance abstract-class pure-virtual
1个回答
1
投票

是否始终需要关键字“ override”?如果没有,什么是最佳做法?

© www.soinside.com 2019 - 2024. All rights reserved.