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

c – 什么时候应该是纯粹的方法?,第1张

概述我已经找到了我正在开发的一些代码,并且想知道最好的设计实现是什么. 如果一个基类定义一个方法为虚拟的,但是也实现一个空的体,因此不需要派生类来实现一个主体,如果不是纯粹的呢? virtual void AMethod1() {} // 1virtual void AMethod2() {assert(false);} // 2virtual void AMe 我已经找到了我正在开发的一些代码,并且想知道最好的设计实现是什么.

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

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

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

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

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

virtual voID AMethod3() = {throw (ENotImplemented)};               // 4
解决方法 这取决于你的编码风格是多么“纯”.有些人认为,你应该总是只定义一个纯虚函数的接口,并从中导出所有具体的类.

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

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

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

总结

以上是内存溢出为你收集整理的c – 什么时候应该是纯粹的方法?全部内容,希望文章能够帮你解决c – 什么时候应该是纯粹的方法?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1254866.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存