c – >>和<<运算符重载
发布时间:2020-12-16 10:50:31 所属栏目:百科 来源:网络整理
导读:我刚刚为我的编程课做了一个测验,并且错误地提出了这个问题: The return type of the function to overload the operator must be a reference to an ostream object. 这对我来说似乎不对.当然,C比这更开放.但我还以为我会在这里问.这是对的(或错的)怎么样
我刚刚为我的编程课做了一个测验,并且错误地提出了这个问题:
这对我来说似乎不对.当然,C比这更开放.但我还以为我会在这里问.这是对的(或错的)怎么样?当涉及到运算符重载时,我的C知识开始真正消失. 解决方法
C不要求返回类型是对ostream对象的引用.但是,如果您尝试执行以下操作:
cout << instance_of_custom_type << 3 << "hi" << endl; 然后你需要: ostream &operator << (ostream &os,custom_type &t); 但是,如果您正在执行类似写入大整数类型的操作并希望支持位移,则可能类似于: BigInt operator << (const BigInt &i,unsigned int shift); 为了进一步扩展这一点,原来使用<<运算符用于位移. 1<<例如,8是256. C为此添加了一个(略微令人困惑的)第二次使用,并在ostream上重载它以表示对流的“输出”.你可以在一个重载的运算符中做任何你喜欢的事情 - 它就像一个函数一样工作,然而,运算符有人类期望与它们相关:程序员期望在C中,<<是位移或流输出. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |