Właśnie przeglądałem losowe strony na Cprogramming.com i zauważyłem stronę z samouczkiem/przykładem na stronie Constructors and Destructors. Zostały one wykorzystane następujące metody definiowania konstruktora:Co to jest korzyść z tej definicji konstruktora?
class String
{
private:
char *str;
int size;
public:
String() : str(NULL), size(0) { } // <- This statement
String(int size) : str(NULL), size(size) { // <- And this one
str = new char[size];
}
}
Używam dobrej starej definicji konstruktorów z magicznym this
palików:
String() {
this->str = NULL;
this->size = 0;
}
String(int size) {
this->size = size;
this->str = new char[size];
}
Czy istnieją jakieś dodatkowe korzyści w pierwszej deklaracji obok oczywistego mniejszego kodu (mniejsza liczba linii)?
PS: Minęło sporo lat odkąd ostatnio napisałem coś w C++.
http://stackoverflow.com/questions/926752/why-should-i-prefer-to-use-member-initialization-list –