C++ 重载加法或乘法运算符与构造函数类似吗?
我有以下两个类:closePrime()和trigger() trigger()类具有动态分配的closePrime对象数组:C++ 重载加法或乘法运算符与构造函数类似吗?,c++,operator-overloading,C++,Operator Overloading,我有以下两个类:closePrime()和trigger() trigger()类具有动态分配的closePrime对象数组: //trigger.h #include "closePrime.h" using namespace std; class trigger { private: closePrime* objArray; int size; ... public: trigger(); tri
//trigger.h
#include "closePrime.h"
using namespace std;
class trigger
{
private:
closePrime* objArray;
int size;
...
public:
trigger();
trigger(int s);
...
}
是否可以重载加法或乘法运算符,以便在main/my driver中我可以执行以下操作:
int main()
{
// i'm not sure if this would be the syntax
trigger triggerObj + 3;
// or something like
trigger triggerObj * 3;
}
这等于说
int main()
{
trigger triggerObj(3);
}
我不熟悉运算符重载,所以我想知道是否有一个、两个或两个都有可能?我不确定我会将代码放在哪里,即使它是。如果我需要分享更多信息,请告诉我。多谢各位
注:无STL
trigger triggerObj + 3;
在语言(c++)中看起来不像一个合法的构造
但是,您可以将其修改为以下内容:
trigger triggerObj = trigger() + 3;
或
然后重载
+
,如果需要,还可能重载=
。否,至少不是以触发触发器OBJ+3的形式重载。
这样做会有什么好处?
trigger triggerObj = trigger() + 3;
trigger triggerObj = whatever + 3;