Witam.
Otoz mecze sie ze zrozmieniem inicjalizacji na liscie inicjalizujacej obiektu klasy zawartego w innej klasie.
a dokladnie:
#include <iostream>
#include <conio.h>
#include<windows.h>
using namespace std;
class A
{
public:
int a;
int b;
A(): a(1),b(1){} //KONSTRUKTOR
A(int sk):a(sk),b(sk){}
A( A &obiekt): a(100), b(obiekt.b) {cout<<"Wlasnie mnie wywoales";}//KONSTRUKTOR KOPIUJ
int zwroc()
{ return a;
}
};
class B
{int c;
int d;
A jeden;
public:
B(): c(0),d(0),jeden() {} //KONSTRUKTOR
B(B &obiekt,int c,float left):c(obiekt.c),d(obiekt.d), jeden(obiekt.jeden) {} //KONSTRUKTOR KOPIUJ
void pokaz()
{ cout<< "=============== Moje skladniki to=====================\n";
cout<<"Z pol klasy *B* "<< c <<" "<< d<<endl;
cout<<"Z pol klasy *A*"<<jeden.a<<" "<< jeden.b;
cout<<endl;
}
};
int main()
{ B p1;
B p2(p1);
p1.pokaz();
p2.pokaz();
}
Np taki prosty kod ( bez celu w celach uczacych).
czy obiekt "jeden mozna zaicjalizowac tylko w taki sposob?(chodzi o konstruktor kopiujacy)
Czy na tej liscie wywoalenie jeden(obiekt.jeden) = wywoluje konstruktor kopiujacy w klasie A ?
A gdybym chcial tylko zainicjowac tylko jeden skladnik klasy A np.a , niech b bedzie takie jak w kopiowanym obiekcie p1, czy dotrzec do skladnikow klasy A mozna tylko za pomoca konstruktora kopiujacego?
Przepraszam, za nieskladnosc, ale mam sporo pytan.
Jakby ktos mogl mi to jakos przyblizyc Dzieki.