ใน C ++ เราสามารถได้รับบางคลาส บางครั้งเราจำเป็นต้องเรียกคอนสตรัคเตอร์ซูเปอร์คลาส (คลาสฐาน) เมื่อเรียกคอนสตรัคเตอร์ของคลาสที่ได้รับ ต่างจาก Java ไม่มีตัวแปรอ้างอิงสำหรับ super class หากคอนสตรัคเตอร์ไม่มีการกำหนดพารามิเตอร์ จะถูกเรียกโดยอัตโนมัติด้วยคลาสที่ได้รับ มิฉะนั้น เราต้องใส่คอนสตรัคเตอร์ซูเปอร์คลาสในรายการ initializer ของคลาสที่ได้รับ
ในตัวอย่างนี้ในตอนแรก เราจะเห็น Constructor ที่ไม่มีอาร์กิวเมนต์
ตัวอย่าง
#include <iostream>
using namespace std;
class MyBaseClass {
public:
MyBaseClass() {
cout << "Constructor of base class" << endl;
}
};
class MyDerivedClass : public MyBaseClass {
public:
MyDerivedClass() {
cout << "Constructor of derived class" << endl;
}
};
int main() {
MyDerivedClass derived;
} ผลลัพธ์
Constructor of base class Constructor of derived class
ตอนนี้ให้เราดู Constructor ที่รับค่า Parameter ได้
ตัวอย่าง
#include <iostream>
using namespace std;
class MyBaseClass {
public:
MyBaseClass(int x) {
cout << "Constructor of base class: " << x << endl;
}
};
class MyDerivedClass : public MyBaseClass { //base constructor as initializer list
public:
MyDerivedClass(int y) : MyBaseClass(50) {
cout << "Constructor of derived class: " << y << endl;
}
};
int main() {
MyDerivedClass derived(100);
} ผลลัพธ์
Constructor of base class: 50 Constructor of derived class: 100