作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我找到了一些我正在处理的代码,想知道最好的设计实现是什么。
如果一个基类将一个方法定义为虚拟的,但也实现了一个空主体,因此不需要派生类实现一个主体,是否应该将其改为纯方法?
virtual void AMethod1() {} // 1
virtual void AMethod2() {assert(false);} // 2
virtual void AMethod3() = 0; // 3
您,那些值得信赖的 SO 人,怎么看?
Edit1:发帖(和阅读答案)后,我意识到断言是错误的!
virtual void AMethod3() = {throw (ENotImplemented)}; // 4
最佳答案
这在一定程度上取决于您的编码风格有多“纯粹”。有些人认为您应该始终仅使用纯虚函数定义接口(interface),并从中派生所有具体类。
其他人则更务实,他们认为如果有一个好的默认实现,您可以将其添加到基类(选项 1)。
第二个选项似乎最没用,因为它会将检测延迟到运行时。大多数程序员宁愿选择选项 3 的编译错误。
像往常一样,C++ 支持多种范式,您可以选择您喜欢的范式。
关于c++ - 虚方法什么时候应该是纯的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6843277/
我有一个特别的问题想要解决,我不确定是否可行,因为我找不到任何信息或正在完成的示例。基本上,我有: class ParentObject {}; class DerivedObject : publi
在我们的项目中,我们配置了虚 URL,以便用户可以在地址栏中输入虚 URL,这会将他们重定向到原始 URL。 例如: 如果用户输入'http://www.abc.com/partner ',它会将它们
我是一名优秀的程序员,十分优秀!