Kopiowanie obiektu - czy dobrze to rozumiem?

0
class A {
private:
     int pole;
};

class B {
private:
     A poleA;
public:
     B(const A & a) : poleA(a) {} //obiekt jest kopiowany 1 raz przy przepisywaniu go do zmiennej poleA
     B(A a) : poleA(a) {} //obiekt jest kopiowany 2 razy, przy przesylaniu przez wartosc w konstruktorze oraz przy kopiowaniu do zmiennej poleA
};

class C {
private:
     A & poleA;
public:
     C(A & a) : poleA(a) {} //obiekt nie jest kopiowany ani razu
};

Czy powyższe to prawda?

2

W teorii - tak.

1

Tak.

0

Dzięki. Czemu w teorii? ;]

1

Napisz sobie konstruktor kopiujący i operator przypisania, które oprócz robienia kopii wyświetlają "KOPIA!!1".
Będziesz widział, co się dzieje.

1
class A
  {
   private:
   int pole;
   public:
   A() { std::cout<<"KOPIA!!!"<<std::endl; };
   A(const A &a):pole(a.pole) { std::cout<<"KOPIA!!!"<<std::endl; };
  };

Pomysł od @Azarien w poście wyżej, tylko w postaci kodu.

0

Dzieki, ja cos podobnego sobie napisalem, interesowaly mnie kwestie tego co sie dzieje "pod spodem". Temat uwazam za zamkniety

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