在过去的几周里,有些东西正在困扰我的大脑虚拟和覆盖.我已经了解到,当你使用虚函数进行继承时,你必须添加virtual以让编译器知道搜索正确的函数.之后我还了解到在c ++ 11中有一个新关键字 - 覆盖.现在我有点困惑; 我是否需要在程序中同时使用虚拟和覆盖关键字,或者最好只使用其中一个?
为了解释自己 - 我的意思的代码示例:
class Base
{
public:
virtual void print() const = 0;
virtual void printthat() const = 0;
virtual void printit() const = 0;
};
class inhert : public Base
{
public:
// only virtual keyword for overriding.
virtual void print() const {}
// only override keyword for overriding.
void printthat() const override {}
// using both virtual and override keywords for overriding.
virtual void printit() const override {}
};
Run Code Online (Sandbox Code Playgroud)
什么是最好的方法?