c – 如何从const方法生成一个非const方法?

c – 如何从const方法生成一个非const方法?,第1张

概述在争取正确性的同时,我经常发现自己编写了这样的代码 class Bar;class Foo {public: const Bar* bar() const { /* code that gets a Bar somewhere */ } Bar* bar() { return const_cast< Bar* >( static_cast< const Foo* 在争取正确性的同时,我经常发现自己编写了这样的代码
class bar;class Foo {public:  const bar* bar() const { /* code that gets a bar somewhere */ }  bar* bar() {    return const_cast< bar* >(      static_cast< const Foo* >(this)->bar());  }};

有很多方法像bar().写这些非常规方法,手工调用常数是乏味的;此外,我觉得我重复了自己 – 这让我感觉很糟糕.

我可以做些什么来减轻这个任务? (宏和代码生成器是不允许的.)

编辑:除了litb的解决方案,我也喜欢我自己的. 总结

以上是内存溢出为你收集整理的c – 如何从const方法生成一个非const方法?全部内容,希望文章能够帮你解决c – 如何从const方法生成一个非const方法?所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存