เนื้อหาเหมือนบทความ ID 1004082251 (Simulating final class in C++) - จำลอง final class ด้วย virtual base class ที่มี private constructor
เทคนิค MakeFinal (ซ้ำ)
class MakeFinal {
private:
MakeFinal() {}
friend class FinalClass;
};
class FinalClass : virtual MakeFinal {
public:
FinalClass() {}
};
class Derived : public FinalClass { // Error: cannot access MakeFinal::MakeFinal()
public:
Derived() {}
};
C++11 และใหม่กว่า
ใช้คีย์เวิร์ด final โดยตรง:
class FinalClass final {
// ไม่สามารถสืบทอดได้
};
วิธีนี้เรียบง่าย มาตรฐาน และชัดเจนกว่า idiom แบบเก่า