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

Poprawne inicjalizowanie konstruktora

0 głosów
56 wizyt
pytanie zadane 29 sierpnia 2016 w C i C++ przez Bondrusiek Pasjonat (16,360 p.)

Witam,

mam pytanie odnośnie inicjalizacji konstruktora. Czemu taka inicjalizacja jest nieefektywna:

Complex(double realPart , double imPart)
{
m_R = realPart;
m_I = imPart;
}

Każde z pól jest inicjalizowane wartością domyślną, a następnie otrzymujemy właściwą wartość. Nie występuje żaden błąd, ale taka inicjalizacja to marnowanie czasu procesora. Tutaj pojawia się moja wątpliwość czemu konstruktor pobiera wartości domyślne a następnie otrzymuje wartości właściwe. Idąc tym tokiem rozumowania przy pisaniu jak najefektywniejszego kodu dobrze przypisywać jakieś wartości do zmiennych niż zostawiać je puste np.

int i = 0;
//cos tam
i = 100;
//niż 
int i;
//cos tam
i = 100;

a jeszcze lepiej od razu pisać właściwe wartości.

1 odpowiedź

+1 głos
odpowiedź 29 sierpnia 2016 przez L33TT12 Gaduła (3,920 p.)
Dlatego stosuje się listę inicjalizacyjną.
komentarz 29 sierpnia 2016 przez Bondrusiek Pasjonat (16,360 p.)
Nom wiem np. postaci

Konstrukcor(int cos) : this->cos = cos {}.

Ale chciałbym się dowiedzieć dlaczego te dwa sposobu są nierównoważne tzn czemu konstruktor przyjmuje dla siebie wartości domyślne a nie czeka na te, które mu podamy.
komentarz 29 sierpnia 2016 przez L33TT12 Gaduła (3,920 p.)
Dlatego, bo kod w konstruktorze wykona się dopiero po stworzeniu obiektu, a w tym czasie zmienne muszą posiadać jakieś wartości, więc konstruktor sam je wybiera a stosując listę inicjalizacyjną konstrukor przypisuje wartości w momencie tworzenia obiektu.

Podobne pytania

0 głosów
0 odpowiedzi 31 wizyt
0 głosów
1 odpowiedź 81 wizyt
pytanie zadane 18 stycznia w C i C++ przez dociekliwy Nowicjusz (150 p.)
0 głosów
1 odpowiedź 85 wizyt

39,635 zapytań

77,997 odpowiedzi

153,248 komentarzy

18,692 pasjonatów

Przeglądających: 286
Pasjonatów: 22 Gości: 264

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...