繁体   English   中英

当多个合适时设置首选操作员

[英]Set prefered operator when more than one are suitable

我有一个名为mc_int的类,它实际上是一个int,具有一些特殊功能。 它设置了operator int()

mc_int::operator int() {
        return value;   //int mc_int::value - the real int value of the class
}

但是当我尝试cout<<类时,我必须始终将类cout<<(int)mc_int_instance为int( cout<<(int)mc_int_instance ,因为出现错误:

多个运算符“ <<”与这些操作数匹配。

同样,这可能是由于该类还定义了<<运算符。 在这里做什么?

如果您使用的是C ++ 11,则可以使用explicit关键字来制作它,因此必须将其显式转换为int 更多信息在这里

explicit mc_int::operator int()

现在,当您使用它时,应使用定义的<<操作符方法,并且它不再对编译器有歧义。 如果确实要使用int,则像使用int或使用static_cast<int>(the_object)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM