เมื่อเรียนรู้เกี่ยวกับความแตกต่างคุณมักเห็นสิ่งนี้
class Base { int prv_member; virtual void fn(){} }
class Derived : Base { int more_data; virtual void fn(){} }
อัพซิสต์หรือดาวน์สตรีมคืออะไร? คือ(Derived*)base_ptr;
upCast หรือเศร้าใจ?
ฉันเรียกมันว่า upcast เพราะคุณกำลังออกจากฐานไปสู่สิ่งที่เฉพาะเจาะจงกว่านี้ คนอื่นบอกฉันว่ามันเป็นการลดทอนเพราะคุณจะลดระดับลงในบางสิ่งที่เฉพาะเจาะจงโดยที่ด้านบนเป็นราก แต่คนอื่น ๆ ดูเหมือนจะเรียกสิ่งที่ฉันเรียกมันว่า
เมื่อแปลง ptr ฐานเป็น ptr ที่ได้รับมันเรียกว่า upcasting หรือ downcasting? และถ้าใครบางคนสามารถเชื่อมโยงไปยังแหล่งข้อมูลอย่างเป็นทางการหรืออธิบายว่าทำไมมันถึงเรียกว่ายิ่งใหญ่
virtual
ไม่จำเป็น แต่ไม่ "เจ็บ" คุณสามารถอธิบายเพิ่มเติมเกี่ยวกับสาเหตุที่คุณคิดว่าไม่ควรใช้ในบริบทนั้นได้หรือไม่?