【发布时间】:2014-11-10 21:25:47
【问题描述】:
例如,我们有这个类:
class my_class
{
public:
friend my_class operator* (const my_class&, int a);
friend my_class operator* (int a, my_class&);
};
my_class operator* (int a, my_class&)
{
// do my_class * a
}
my_class operator* (int a, my_class&)
{
// do a * my_class
}
是否可以只做一个 operator* 来做这两个做的事情?
谢谢!
【问题讨论】:
-
第二个表单不应该返回
my_class吗? -
第一个可以做
my_class * a,但第一个只做my_class * my_class,如果它是一个成员函数或编译器错误,因为全局运算符函数需要两个参数。 -
你真正想要的语义是什么?乘法、解引用?
-
@πάνταῥεῖ 倍增!我刚刚写了一个简短的问题,对于语义错误,抱歉!
-
@marquesm91 “我刚刚写了一个简短的问题,” 请记住,本网站旨在帮助未来的研究人员提出问题。您是否会认为您的问题对于其他没有看到您实际拥有的代码、意在使用的语义的人来说是这样的?请检查您要改进的问题。
标签: c++ operator-overloading overloading