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

Virtual Base Class ใน C++


ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อเข้าใจ virtual base class ใน C++

Virtual base class ใช้หลักในกรณีของ multiple inheritance (การสืบทอดหลายชั้น) เพื่อป้องกันไม่ให้มีอินสแตนซ์ของคลาสฐานเดียวกันหลายตัวในคลาสลูกสุดท้าย ซึ่งจะทำให้เกิดความคลุมเครือ (ambiguity)

ตัวอย่างโค้ด

#include <iostream> 
using namespace std; 

class A {
public:
    int a;
    A() {
        a = 10;
    }
};

class B : public virtual A { };
class C : public virtual A { };
class D : public B, public C { };

int main() {
    // สร้างออบเจกต์ของคลาส D
    D object;
    cout << "a = " << object.a << endl;
    return 0;
}

เอาต์พุต

a = 10