Является ли перегрузка сложения или умножения оператор похож на конструктор? - PullRequest
0 голосов
/ 07 марта 2019

У меня есть два следующих класса: closePrime () и trigger ().

Класс 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];
}

Можно ли перегрузить оператор сложения или умножения , чтобы в 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

1 Ответ

0 голосов
/ 07 марта 2019
trigger triggerObj + 3;

Не похоже на легальную конструкцию в языке (c ++).

Однако вы можете изменить его на что-то вроде:

trigger triggerObj = trigger() + 3;

или

trigger triggerObj = whatever + 3;

Затем перегрузка + и, возможно, =.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...