在C++中,當(dāng)創(chuàng)建一個(gè)派生類對(duì)象時(shí),基類的構(gòu)造函數(shù)會(huì)在派生類對(duì)象構(gòu)造之前被調(diào)用。你可以通過(guò)以下幾種方式調(diào)用基類構(gòu)造函數(shù):
base_class_name()
來(lái)調(diào)用它。例如:class Base {
public:
Base() {
// 基類構(gòu)造函數(shù)實(shí)現(xiàn)
}
};
class Derived : public Base {
public:
Derived() : Base() { // 調(diào)用基類默認(rèn)構(gòu)造函數(shù)
// 派生類構(gòu)造函數(shù)實(shí)現(xiàn)
}
};
class Base {
public:
Base(int x) {
// 基類構(gòu)造函數(shù)實(shí)現(xiàn)
}
};
class Derived : public Base {
public:
Derived(int x) : Base(x) { // 調(diào)用基類帶參數(shù)的構(gòu)造函數(shù)
// 派生類構(gòu)造函數(shù)實(shí)現(xiàn)
}
};
using
聲明來(lái)繼承基類的構(gòu)造函數(shù)。例如:class Base {
public:
Base() {
// 基類構(gòu)造函數(shù)實(shí)現(xiàn)
}
Base(int x) {
// 基類帶參數(shù)構(gòu)造函數(shù)實(shí)現(xiàn)
}
};
class Derived : public Base {
public:
using Base::Base; // 繼承基類的所有構(gòu)造函數(shù)
};
這樣,Derived
類就會(huì)繼承Base
類的所有構(gòu)造函數(shù),可以直接使用Derived()
和Derived(int x)
來(lái)創(chuàng)建派生類對(duì)象。