Udostępnij za pośrednictwem


Inicjalizacja za pomocą specjalnych funkcji członkowskich

W tej sekcji opisano inicjowanie przy użyciu specjalnych funkcji elementów członkowskich.Rozszerza się to na następujące dyskusje dotyczące inicjowania:

  • Inicjowanie agregatów opisujące jak zainicjować tablice typów nonclass i obiekty prostych typów klas.Te proste typy klasy nie mogą mieć członków prywatnych ani chronionych, a oni nie mogą mieć klas podstawowych.

  • Konstruktory, które wyjaśniają jak zainicjować obiekty typu klasy za pomocą specjalnej funkcji konstruktora.

Domyślna metoda inicjowania wykonuje kopię bit po bicie z inicjatora do obiektu, który ma zostać zainicjowany.Ta technika ma zastosowanie tylko do:

  • Obiekty wbudowanych typów.Na przykład:

    int i = 100;
    
  • Wskaźniki.Na przykład:

    int i;
    int *pi = &i;
    
  • Odwołania.Na przykład:

    String sFileName( "FILE.DAT" );
    String &rs = sFileName;
    
  • Obiekty typu klasy, gdzie klasa nie ma żadnych członków prywatnych ani chronionych, funkcji wirtualnych i żadnych klas podstawowych.Na przykład:

    // spec1_special_member_functions.cpp
    // compile with: /LD
    struct Point
    {
        int x, y;
    };
    
    Point pt = { 10, 20 };   // Static storage class only
    

Klasy mogą określić bardziej wyrafinowane inicjowania przez definiowanie funkcji konstruktora. (Aby uzyskać więcej informacji dotyczących deklarowania takich funkcji, zobacz Konstruktory.) Jeśli obiekt jest typu klasy, która ma konstruktor, obiekt musi zostać zainicjowany lub musi istnieć konstruktor domyślny.Obiekty, które nie są specjalnie zainicjowane wywołują konstruktor domyślny tej klasy.

Zobacz też

Informacje

Specjalne funkcje członkowskie (C++)