mar*_*m91 2 c++ overloading operator-overloading
例如,我们有这个类:
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
}
Run Code Online (Sandbox Code Playgroud)
是否可以只做一个操作员*来做这两个人做的事情?
谢谢!
你不能这样做.但是,您可以实现一个,只需从另一个调用它:
my_class operator *(const my_class &l, int r) {
// implement the actual operator here.
}
my_class operator *(int l, const my_class &r) {
return r * l;
}
Run Code Online (Sandbox Code Playgroud)
(请注意,您不能将后一个函数作为类的一部分实现.您必须在外部执行.第一个函数可以实现为实例方法,因为它的第一个参数是类类型.)
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |