int main (){ MojaKlasa obiektMojejKlasy(5); std::cout << *(obiektMojejKlasy.wsk) << std::endl; // wyświetli: 5 MojaKlasa kopiaObiektu(obiektMojejKlasy); // kopiowanie składnik po składniku, wskazanie też zostanie skopiowane *(kopiaObiektu.wsk) = 3; std::cout << *(obiektMojejKlasy.wsk) << std::endl; // wyświetli: 3 return 0; } Klasa MojaKlasa zawiera pole wsk będące wskaźnikiem na zmienną typu int. Każdy obiekt tej klasy ma posiadać własną zmienną typu int którą wskazuje wskaźnik wsk. W kodzie programu znajduje się deklaracja obiektu klasy MojaKlasa gdzie następuje wywołanie zdefiniowanego konstruktora, a w nim rezerwacja pamięci na zmienną typu int i przypisanie jej adresu do wskaźnika. Następnie, w celu sprawdzenia wartości, wyświetlana jest wartość zmiennej wskazywanej przez wskaźnik z utworzonego obiektu, wartość jest równa 5. Następnie tworzony jest drugi obiekt klasy o nazwie kopiaObiektu za pomocą niejawnie wygenerowanego konstruktora kopiującego, konstruktor ten kopiuje wszystkie pola klasy składnik po składniku. W kolejnym kroku przypisywana jest wartość 3 zmiennej wskazywanej przez wskaźnik obiektu kopiaObiektu. Następnie wyświetlana jest ponownie wartość zmiennej wskazywanej przez wskaźnik obiektu obiektMojejKlasy (gdzie wcześniej była wartość 5).
Źródło i licencja
Fragment artykułu Wikipedia — Konstruktor (programowanie obiektowe) · historia autorów.
Tekst: CC BY-SA 4.0. Wydzielono fragment z dłuższego artykułu.