[C++, obiektowość] Tworzenie obiektu z oryginalnym konstruktorem w klasie
Ostatnio zmodyfikowano 2015-04-05 12:32
Winner_Of_Death Temat założony przez niniejszego użytkownika |
[C++, obiektowość] Tworzenie obiektu z oryginalnym konstruktorem w klasie » 2015-04-04 18:34:45 Witam. Jak utworzyć obiekt w klasie, który do wywołania konstruktora musi dostać argument ? Przykład: class klasa_A { public: int zmienna; klasa_A( int n ) { zmienna = n; } };
class klasa_B { klasa_A obiekt( 1 ); };
|
|
NopeDotAvi |
» 2015-04-04 18:44:43 Czy tylko ja nie rozumiem pytania? Przecież zrobiłeś konstruktor, który potrzebuje argumentu. |
|
notabigthreat |
» 2015-04-04 18:46:19 class klasa_A { public: int zmienna; klasa_A( int n ) { zmienna = n; } };
class klasa_B { klasa_A obiekt; klasa_A obiekt2; klasa_A obiekt3; public: klasa_B( int a ) : obiekt( 1 ) , obiekt2( 2 ) , obiekt3( a ) { } }; Inni piszą tak: : obiekt( 1 ), obiekt2( 2 ), obiekt3( a ) @EDIT: W ten sposób możesz także ustawiać zwykłe zmienne (int'y, float'y...). |
|
Winner_Of_Death Temat założony przez niniejszego użytkownika |
» 2015-04-04 18:50:45 @NopeDotAvi: Zrobiłem, lecz nie wiedziałem jak go wywołać. @up: Dzięki wielkie, o to chodziło. Chciałbym również życzyć wszystkim Wesołych Świąt ! @EDIT: Dopytam. Ta sama sytuacja, tylko zamiast jednego obiektu, tworzę tablicę obiektów. Jak wtedy wywołać konstruktor ? Przykład: class klasa_A { public: int zmienna; klasa_A( int n ) { zmienna = n; } };
class klasa_B { klasa_A obiekt[ 2 ]; public: klasa_B() : obiekt[ 0 ]( 1 ) , obiekt[ 1 ]( 1 ) { } };
|
|
SeaMonster131 |
» 2015-04-04 19:20:48 Możesz spróbować w taki sposób, jak normalną tablicę: klasa_B() : obiekt {( 1 ),( 2 ) }
|
|
Fireho |
» 2015-04-04 19:20:53 @SeaMonster131 Ten sposób nie zadziała przy konstruktorach, które przyjmują więcej niż 1 argument. Najlepiej zamiast tego zamienić klasyczną tablicę na std::vector i użyć metody push_back / emplace_back . |
|
notabigthreat |
» 2015-04-04 19:26:01 |
|
Winner_Of_Death Temat założony przez niniejszego użytkownika |
» 2015-04-04 19:48:03 W takim razie pomimo tego, iż wiem ile obiektów będzie potrzebnych, użyję vectora. Dziękuję wszystkim za pomoc ! |
|
« 1 » 2 |