שאלה די בסיסית ב C++
נאמר שיש לי מחלקה A ומחלקה B שיורשת ממנה. נריץ את הקוד הבא:
נאמר שיש לי מחלקה A ומחלקה B שיורשת ממנה. נריץ את הקוד הבא:
A a; B b; A *pa = &b; B *pb = &a;
השורה השלישית חוקית , אך הרביעית תגרור את שגיאת הקומפילציה הבאה :error: invalid conversion from `A*' to `B*'
מה קורה פה : מדוע מצביע לA יכול להצביע לכתובת של משתנה מטיפוס B אך לא להפך ?