- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
假设给出以下代码。
class A
{
public:
virtual void someMethod()
{
std::cout << "class A" << std::endl;
}
};
class B : public A
{
public:
...
virtual void someMethod() = 0;
...
};
B
类用 pure 虚方法覆盖 someMethod
虚方法。这样做的目的可能是现有类的扩展,在我们的案例类A
中不允许修改,但仍然有一个抽象类B
,它必须是基类一些进一步的类(class)。
根据 MISRA-C++ 规则 10-3-3:代码分析器给出警告:Pure virtual function override a non pure virtual function。
但是我找不到关于警告的详细信息。上述代码的副作用是什么?这里有什么不好的做法?
更新:标准是 MISRA-C++ (C++98)
最佳答案
我看不出这里有什么神秘之处。代码分析器可能会根据 MISRA 标准而不是 C++ 98 标准检查您的代码。
MISRA 是一套适用于汽车环境的 C/C++ 编码标准,它对语言标准假定合法/允许的内容施加了进一步的限制。
您正在用一个纯虚函数覆盖一个非纯虚函数,显然这对编译器来说是可以的,但对 MISRA 规则来说是不行的。
也就是说,您的程序可以正常编译和执行,并且符合语言标准,但可能不会被需要代码审查和符合 MISRA 标准的客户接受。
关于c++ - 纯虚函数覆盖虚函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19065836/
我有一个特别的问题想要解决,我不确定是否可行,因为我找不到任何信息或正在完成的示例。基本上,我有: class ParentObject {}; class DerivedObject : publi
在我们的项目中,我们配置了虚 URL,以便用户可以在地址栏中输入虚 URL,这会将他们重定向到原始 URL。 例如: 如果用户输入'http://www.abc.com/partner ',它会将它们
我是一名优秀的程序员,十分优秀!