Aracılığıyla paylaş


Member nesneleri başlatılıyor

Sınıflar üye nesne sınıfı türü içerebilir, ancak member nesneleri için başlatma gereksinimlerin karşılandığından emin olmak için aşağıdaki koşullardan biri karşılanması gerekir:

  • İçerilen nesne sınıfı yok Oluşturucu gerektirir.

  • İçerilen nesne sınıfı erişilebilir varsayılan oluşturucuya sahiptir.

  • Kurucular içeren sınıfın tüm açıkça içerilen nesne başlatılamıyor.

Aşağıdaki örnek, bir başlatma işlemini göstermektedir:

// spec1_initializing_member_objects.cpp
// Declare a class Point.
class Point
{
public:
    Point( int x, int y ) { _x = x; _y = y; }
private:
    int _x, _y;
};

// Declare a rectangle class that contains objects of type Point.
class Rect
{
public:
    Rect( int x1, int y1, int x2, int y2 );
private:
    Point _topleft, _bottomright;
};

//  Define the constructor for class Rect. This constructor
//   explicitly initializes the objects of type Point.
Rect::Rect( int x1, int y1, int x2, int y2 ) :
_topleft( x1, y1 ), _bottomright( x2, y2 )
{
}

int main()
{
}

Rect Yukarıdaki örnekte gösterilen sınıfını içeren iki üye nesne sınıfının Point.Yapıcısına açıkça nesneleri başlatır _topleft ve _bottomright.İki nokta (tanım) olarak kurucunun kapatma parantezi takip edin.Üye adları ve bağımsız değişkenler ile nesne türü başlatmak iki nokta üst üste gelir Point.

[!NOT]

Üye başlatıcıları kurucusunda belirtilen sırada üyelerden oluşturulur düzenini etkilemez; üyeler, sınıf içinde bildirilen sırayla oluşturulur.

Başvuru ve const member nesneleri gerekir başlatılmış dilbilgisi bölümünde gösterilen üye başlatma sözdizimini kullanarak esaslarını başlatılıyor ve üyeleri.Bu nesneleri başlatmak için başka hiçbir yolu yoktur.

Ayrıca bkz.

Başvuru

Esaslarını ve üyeleri başlatılıyor