Operator przypisania w klasie zawierającej obiekt innej klasy

0

Jeśli Operator przypisania jest w klasie zawierającej obiekt innej klasy to jak napisać definicję operatora przypisania ? Czy muszę w nim zawierać ten obiekt innej klasy ?

Nikt nic nie odpisał, więc daje przykład:

#include <iostream>
using namespace std;
#include <string>

class Kolo
{
    int ilosc_kol;

public:
    Kolo(int liczba)
    {
        this->ilosc_kol = liczba;
    }
};

class Samochod
{
    float przebieg;
    Kolo kolo;

public:
    Samochod(float km, int liczba) : przebieg(km), kolo(liczba)
    {

    }

    Samochod & operator=(const Samochod & wzor)
    {
        this->przebieg = wzor.przebieg;
    }
};

int main()
{
    Samochod samochod(30000,3);
    Samochod drugi(10000,4);

    drugi = samochod;

    return 0;
}
 

Chodzi o ten fragment:

Samochod & operator=(const Samochod & wzor)
    {
        this->przebieg = wzor.przebieg;
    } 

co zrobić w operatorze przypisania w klasie Samochod ze składnikiem klasy Samochod - obiektem klasy Kolo.

1
this->kolo = wzor.kolo;

ale zgodnie z rule of zero ten operator nie jest w twoim kodzie wcale potrzebny.

0

wiem, ale chcialem wiedziec jakby to recznie napisac ?

Samochod & operator=(const Samochod & wzor)
    {
        this->przebieg = wzor.przebieg + 10;
    }

W tym przypadku już zmieniam przebieg o 10km, ale co z obiektem klasy kolo ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1