ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อเข้าใจ 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