• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy można dynamicznie sklonować obiekt ? c++ builder

VPS Starter Arubacloud
0 głosów
177 wizyt
pytanie zadane 16 sierpnia 2015 w C i C++ przez Pixel040 Gaduła (3,100 p.)
np. TScrollBox

1 odpowiedź

+1 głos
odpowiedź 16 sierpnia 2015 przez Sebastian Fojcik Nałogowiec (43,040 p.)

Nie wiem czy dobrze zrozumiałem Twoją chęć sklonowania czegoś, ale można utworzyć nowy obiekt z identycznymi parametrami jak inny.

class Kwadrat
{
public:
	int bok;
};

int main()
{
	Kwadrat k1;
	k1.bok = 5;

	// Tworzymy dynamicznie nowy obiekt k2
	// o identycznych parametrach co k1.
	Kwadrat * k2 = new Kwadrat( k1 );

	cout << k2->bok; // jak widać działa

	return 0;
}

W ten sposób tworzymy nowy obiekt i przepisujemy mu wszystkie wartości. Ale wiąże się to również z ryzykiem! Bo jeżeli elementem składowym klasy jest jakiś wskaźnik, to on również zostanie przepisany, czyli będziesz posiadał 2 obiekty, wewnątrz których są 2 wskaźniki pokazujące na jeden element.

Jeżeli interesuje Cię masowe sklonowanie jakiegoś obiektu, to tworzysz sobie tablicę wskaźników:

Kwadrat * tab[ 10 ];

i potem uzupełniasz klonami:

for( int i = 0; i < 10; i++ )
    tab[ i ] = new Kwadrat( k1 )

potem już tylko się odwołujesz:

tab[ 5 ]->bok

Jeżeli dobrze zrozumiałem, to w ten sposób powinieneś bezproblemowo "sklonować" swoje obiekty.
Pozdrawiam.

Podobne pytania

0 głosów
2 odpowiedzi 1,230 wizyt
0 głosów
0 odpowiedzi 145 wizyt
+2 głosów
5 odpowiedzi 2,850 wizyt

92,845 zapytań

141,786 odpowiedzi

320,861 komentarzy

62,178 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...