假设已经给出以下代码。
类
根据MISRA-C++规则10-3-3:代码分析器会发出警告:纯虚函数覆盖了非纯虚函数。 但我找不到关于该警告的详细信息。上述代码的副作用是什么?这里的不良实践是什么?
更新:标准是MISRA-C++(C++98)。
class A
{
public:
virtual void someMethod()
{
std::cout << "class A" << std::endl;
}
};
class B : public A
{
public:
...
virtual void someMethod() = 0;
...
};
类
B
用纯虚拟方法覆盖了someMethod
虚拟方法。这样做的目的可能是扩展现有的类,而不允许修改我们的案例类A
,但仍然有一个抽象类B
,必须是一些进一步类的基类。根据MISRA-C++规则10-3-3:代码分析器会发出警告:纯虚函数覆盖了非纯虚函数。 但我找不到关于该警告的详细信息。上述代码的副作用是什么?这里的不良实践是什么?
更新:标准是MISRA-C++(C++98)。
class B : public A { public: virtual void someMethod() {someMethodB();} virtual void someMethodB() = 0; };
- Jarod42