Aracılığıyla paylaş


Temel sınıflar başlatılıyor

Doğrudan temel sınıflar, member nesneleri aynı şekilde başlatılır.Aşağıdaki örneği inceleyin:

// spec1_initializing_base_classes.cpp
// Declare class MyClass.
class MyClass
{
public:
   MyClass( int rSize )
   {
   }
};

//  Declare class DialogBox, derived from class MyClass
class DialogBox : public MyClass
{
public:
   DialogBox( int rSize );
};

//  Define the constructor for DialogBox. This constructor
//   explicitly initializes the MyClass subobject.
DialogBox::DialogBox( int rSize ) : MyClass( rSize )
{
}

int main()
{
}

Kurucusu dikkat DialogBox, MyClass temel sınıfı başlatılan bağımsız değişkenini kullanarak rSize.Bu başlatma sınıfının yapıcısına değişkenlerin parenthesized listesi tarafından izlenen başlatmak için temel sınıf adını içerir.

Temel sınıflar, başlangıçta temel sınıfın bir bileşenini temsil subobject olmayan nesne bir "tam nesne." olarak kabul edilir Tam nesnenin sınıf nesnesi için "en türetilen" sınıfı kabul edilir.

Sanal temel sınıfları temsil eden ındaki en türetilmiş sınıf kurucusu tarafından başlatılır.Sanal türetme burada belirtilen en türetilmiþ sýnýf sanal temel sınıf açıkça başlatması gerekir, ya sanal taban sınıfı varsayılan bir kurucusu olmalıdır anlamına gelir.İlk değer atamaların Kurucular sınıflarının en türetilmiş sınıf dışında görünen sanal temel sınıflar için dikkate alınmaz.

Temel sınıflar başlatma temel sınıflar doğrudan genellikle sınırlı olsa da, bir sınıf kurucusunu dolaylı sanal temel sınıf baþlatabilirsiniz.

Ayrıca bkz.

Başvuru

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