ใน 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