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

กฎการเรียก Superclass Constructor ใน C++

ใน C++ เราสามารถ derive คลาสได้ บางครั้งต้องเรียก constructor ของ superclass (base class) เมื่อเรียก constructor ของ derived class ไม่เหมือน Java ที่มีตัวแปรอ้างอิง super หาก constructor ไม่มีพารามิเตอร์ จะถูกเรียกอัตโนมัติพร้อม derived class มิฉะนั้นต้องวาง superclass constructor ใน initializer list ของ derived class

ตัวอย่าง 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 มีพารามิเตอร์

#include <iostream>
using namespace std;

class MyBaseClass {
public:
    MyBaseClass(int x) {
        cout << "Constructor of base class: " << x << endl;
    }
};

class MyDerivedClass : public MyBaseClass {
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