c – 什么时候应该是纯粹的方法?

前端之家收集整理的这篇文章主要介绍了c – 什么时候应该是纯粹的方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经找到了我正在开发的一些代码,并且想知道最好的设计实现是什么.

如果一个基类定义一个方法为虚拟的,但是也实现一个空的体,因此不需要派生类来实现一个主体,如果不是纯粹的呢?

virtual void AMethod1() {}                 // 1
virtual void AMethod2() {assert(false);}   // 2
virtual void AMethod3() = 0;               // 3

>当前代码.
> Idea1:提醒用户该派生对象尚未实现此方法体.
Idea2:派生类实现一个body,不空.

你是什​​么,值得信赖的SO人,想?

编辑1:发布后(和阅读答案),我意识到断言是坏的!

virtual void AMethod3() = {throw (ENotImplemented)};               // 4

解决方法

这取决于你的编码风格是多么“纯”.有些人认为,你应该总是只定义一个纯虚函数的接口,并从中导出所有具体的类.

其他人更务实和相关,如果有一个很好的默认实现,你可以添加到基类(选项1).

第二个选项似乎是最不实用的,因为它会延迟检测到运行时间.大多数程序员宁愿选择选项3的编译错误.

像往常一样,C支持几个范例,你可以选择一个你喜欢的.

猜你在找的C&C++相关文章