Skocz do zawartości
Robert B.

Konstruktory ??

Rekomendowane odpowiedzi

Ich głównym zadaniem jest nadwanie wartości początkowej dla danych ( obiektów danej klasy , tablic , zmiennych ) w klasie, przy jednoczesnym ( a może właśnie dlatego ) tworzeniu obiektu.

 

Konstruktor jest w klasie zawsze nawet jeśli nie zadeklarujesz go sobie, zawsze jest deklarowany konstruktor i destruktor domyślny który nic nie robi ( NAZWA_KLASY() && ~NAZWA_KLASY() ) z praktycznego punktu widzenia... :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ich głównym zadaniem jest nadwanie wartości początkowej dla danych ( obiektów danej klasy , tablic , zmiennych ) w klasie, przy jednoczesnym ( a może właśnie dlatego ) tworzeniu obiektu.

 

Konstruktor jest w klasie zawsze nawet jeśli nie zadeklarujesz go sobie, zawsze jest deklarowany konstruktor i destruktor domyślny który nic nie robi ( NAZWA_KLASY() && ~NAZWA_KLASY() ) z praktycznego punktu widzenia... :)

"Przeczytaj jakis kurs/ksiazke, to jest obszerny temat i nikt nie bedzie go tutaj tlumaczyl." Fakt i tyle powinno wystarczyć.

 

Weż nie osłabiaj mnie razor1, bo chyba nie wiesz kiedy jest automatycznie generowany konstruktor domyślny?

A jak to automatycznie wygenerowany (w pewnych warunkach!) konstruktor domyślny nic nie robi??? A konstrukcja klas bazowych + konstrukcja obiektów składowych to jest nic?? Ech, nie znasz się to nie pisz.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ech, nie znasz się to nie pisz.

Miszczu DalejLamo :x przeczytaj sobie kilka razy co zostało napisane i w jakim sensie to jest napisane

( to o domyślnych konstruktorach/destruktorach , compare akapit1 akapit2 ) :o .

Posłuchaj w języku programowania jakim jest C++ wszystko jest formalnie ustalone i nie ma "praktycznego punktu widzenia" albo coś się dzieje albo nie. I sens w jakim jest to napisane też tego nie zmienia.

 

A nie rozumiesz, że to jest błędne stwierdzenie:

[...] zawsze jest deklarowany konstruktor i destruktor domyślny który nic nie robi ( NAZWA_KLASY() && ~NAZWA_KLASY() )[...]

Konstruktor domyślny NIE JEST zawsze deklarowany. Nie wierzysz pewnie, no to przykładzik:

[php:1:294c2ccc79]

class A

{

int i;

public:

A(int _i) { i = _i; }

};

 

int main()

{

A a( 2 ); //ok

A b; // error!

}

[/php:1:294c2ccc79]

Wyjście kompilatora:

c.cpp: In function `int main()':

c.cpp:11: error: no matching function for call to `A::A()'

c.cpp:2: note: candidates are: A::A(const A&)

c.cpp:5: note: A::A(int)

 

I gdzie jest konstruktor domyślny? :wink:

 

P.S. Chodzi mi tylko i wyłącznie o faktyczny stan rzeczy, a nie domysły... Jeśli ktoś źle coś rozumie, nie wie czegoś to po co się pcha z odpowiedzią?

P.S.2 Przy okazji ten wątek praktycznie przyda się osobom, które chcą się czegoś dowiedzieć o konstruktorach w C++.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

i pomyslec ze wystarczylo napisac koledze ze konstruktor domyslny jest tworzony tylko w przypadu, gdy nie zostaje zadeklarowany inny konstruktor ;)

 

sprawa dodatkowo sie komplikuje przy dziedziczeniu, ogolnie bez literatury to bedzie mial autor topicu klopot z poznaniem tajnikow

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...