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.