21 Востаннє редагувалося lucas-kane (04.05.2022 07:49:13)

Re: C++ Конструктор копіювання

QYQYA написав:

Наскільки я зрозумів, неможливо передати скопійовані параметри одного об'єкту якогось класу, іншому об'єкту другого класу, якщо можна, в мене би появилась можливість реалізувати передачу без додаткових змінних в main'і.

1. Використовуєш new, звільняй пам'ять delete.
2. Навіщо тобі передавати властивості одного об'єкта, похідного класу, іншому об'єкту - базовому класу, якщо ти наслідуєш один клас від іншого:

Прихований текст
class Base {
public:
    Base() { x = 0;  y = 0; }

    Base(int a, int b) {
        x = a;
        y = b;
    }

    Base(const Base& other) {
        x = other.x;
        y = other.y;
    }

    ~Base() {
        x = 0;
        y = 0;
    }

protected:
    int x;
    int y;
};

class Derived : public Base {
public:
    Derived() : Base()  {}

    Derived(int a, int b)
        : Base(a, b)  {}

    Derived(const Derived& other)
        : Base(other)  {}

    int add() { return (x + y); }

    int sub() { return (x - y); }
};

int main()
{
    Derived d(1, 2);

    cout << d.add() << endl;
    cout << d.sub() << endl;

    return 0;
}

вони автоматично переходять від базового класу до похідного при успадкуванні.

Подякували: QYQYA1

22

Re: C++ Конструктор копіювання

Наскільки я зрозумів, ви погано вивчили теми про функції, аргументи, структури і наслідування, тому вам краще почитати підручник про це.

Подякували: QYQYA, leofun012

23

Re: C++ Конструктор копіювання

1 курс. Єдине, що я знаю, це то, що моя програма має додавати , віднімати і множити числа, і ще в ній має бути два класа, і в базовому класі має бути конструктор копіювання. В функції check, return я написав тому, що без нього код не скомпілюється, а функції повертати по суті нічого і не треба.