Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

กฎสำหรับการเรียกคอนสตรัคเตอร์ซูเปอร์คลาส C ++ คืออะไร?


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