大佬教程收集整理的这篇文章主要介绍了c – static_cast与直接调用转换运算符?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
#include <iostream> #include <String> using namespace std; class point { public: int _x{ 0 }; int _y{ 0 }; point() {} point(int x,int y) : _x{ x },_y{ y } {} operator String() const { return '[' + to_String(_X) + ',' + to_String(_y) + ']'; } friend ostream& operator<<(ostream& os,const point& p) { // Which one? Why? os << static_cast<String>(p); // Option 1 os << p.operator String(); // Option 2 return os; } };
是应该直接调用转换运算符,还是只调用static_cast并让它完成工作?
这两行几乎完全相同(就是调用转换运算符),就我所知,它们的行为没有真正的区别.所以这里真正的问题是这是否真实.虽然这对我来说似乎是一样的,但仍然可能存在一些人们可能无法接受的微妙差异.
以上是大佬教程为你收集整理的c – static_cast与直接调用转换运算符?全部内容,希望文章能够帮你解决c – static_cast与直接调用转换运算符?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。