Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Tworzenie obiektu klasy za pomocą konstruktora

Ostatnio zmodyfikowano 2015-04-17 15:57
Autor Wiadomość
akwes
» 2015-04-17 15:33:03
C/C++
#include <iostream>
using namespace std;

class A { };

int main() {
    A * a = new A;
    A * b = new A { };
    A * c = new A();
    return 0;
}

To jest kwestia zapisu.
P-131064
Patrycjerz
Temat założony przez niniejszego użytkownika
» 2015-04-17 15:36:35
Dziękuję za wyjaśnienie. Czyli to jest tylko zapis, aby wywołać konstruktor. Przepraszam za wszelkie niedogodności, ale lubię wszystko rozumieć :)
P-131066
Monika90
» 2015-04-17 15:44:40

C/C++
A * a = new A;
A * b = new A { };
A * c = new A();
ale to nie będzie to samo, a przynajmniej nie zawsze

C/C++
//to jest default initialization
A * a = new A;

//a to value initialization
A * b = new A { };
A * c = new A()
P-131067
Patrycjerz
Temat założony przez niniejszego użytkownika
» 2015-04-17 15:46:34
Co to jest value initialization?
P-131068
akwes
» 2015-04-17 15:57:03
@Monika90, tak, jednak nie wdając się w szczegóły chciałem przemycić "modny" sposób inicjalizacji, który ma dodatkowe zalety. Wiele osób obstaje przy tym aby konsekwentnie stosować ten zapis gdzie jest to tylko możliwe.

@Patrycjerz,
http://en.cppreference.com/w​/cpp/language​/value_initialization
http://en.cppreference.com/w​/cpp/language​/default_initialization
P-131069
1 « 2 »
Poprzednia strona Strona 2 z 2