[英]Is overloading addition or multiplication operator similar to constructor?
I have the following two classes: closePrime() and trigger().我有以下两个类:closePrime() 和 trigger()。
The trigger() class has a dynamically allocated object array of closePrime objects: trigger() 类有一个动态分配的 closePrime 对象数组:
//trigger.h
#include "closePrime.h"
using namespace std;
class trigger
{
private:
closePrime* objArray;
int size;
...
public:
trigger();
trigger(int s);
...
}
... ...
// trigger.cpp
trigger::trigger()
{
size = 2;
objArray = new closePrime[size];
}
trigger::trigger(int s)
{
size = s;
objArray = new closePrime[size];
}
Is it possible to overload the addition or multiplication operator so that in main/my driver I can do something along the following lines:是否可以重载加法或乘法运算符,以便在主/我的驱动程序中我可以按照以下方式做一些事情:
int main()
{
// i'm not sure if this would be the syntax
trigger triggerObj + 3;
// or something like
trigger triggerObj * 3;
}
And it would be equal to saying这等于说
int main()
{
trigger triggerObj(3);
}
I am new to operator overloading so I was wondering if one, both, or neither of these were possible?我是运算符重载的新手,所以我想知道是否可能有一个,两个或两个都不可能? I wasn't sure where I would put the code even if it was.
我不确定我会把代码放在哪里,即使它是。 Let me know if I need to share more info.
如果我需要分享更多信息,请告诉我。 Thank you.
谢谢你。
Note: No STL注意:没有 STL
trigger triggerObj + 3;
Doesn't look like a legal construct within the language (c++).看起来不像语言(c++)中的合法结构。
However you may modify it to something like:但是,您可以将其修改为:
trigger triggerObj = trigger() + 3;
or或者
trigger triggerObj = whatever + 3;
Then overload +
and possible =
if needed.然后重载
+
和可能的=
如果需要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.