Operator przypisania w klasie zawierającej obiekt innej klasy

2015-07-22 18:25
Świetny Terrorysta
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.

Pozostało 580 znaków

2015-07-23 13:01
1
this->kolo = wzor.kolo;

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

Pozostało 580 znaków

2015-07-23 13:26
Świetny Terrorysta
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 ?

edytowany 2x, ostatnio: furious programming, 2016-12-13 18:26
przecież podałem. a jak chcesz to w klasie Kolo też możesz zdefiniować operator, a zostanie użyty. - Azarien 2015-07-23 17:43

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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