สมาชิกเสมือนแบบ C ++ คงที่?
เป็นไปได้ใน C ++ ที่จะมีฟังก์ชั่นสมาชิกที่มีทั้งstaticและvirtual? เห็นได้ชัดว่าไม่มีวิธีที่ตรงไปตรงมาที่จะทำมัน ( static virtual member();เป็นข้อผิดพลาดในการคอมไพล์) แต่อย่างน้อยก็มีวิธีที่จะบรรลุผลเช่นเดียวกันหรือไม่? IE: struct Object { struct TypeInformation; static virtual const TypeInformation &GetTypeInformation() const; }; struct SomeObject : public Object { static virtual const TypeInformation &GetTypeInformation() const; }; มันสมเหตุสมผลที่จะใช้GetTypeInformation()ทั้งในอินสแตนซ์ ( object->GetTypeInformation()) และคลาส ( SomeObject::GetTypeInformation()) ซึ่งอาจมีประโยชน์สำหรับการเปรียบเทียบและจำเป็นสำหรับเทมเพลต วิธีเดียวที่ฉันนึกถึงเกี่ยวข้องกับการเขียนสองฟังก์ชั่น / ฟังก์ชั่นและค่าคงที่ต่อคลาสหรือใช้มาโคร ทางออกอื่น ๆ