למה מבין למה שורה מסוימת לא תקינה בקוד מסוים

למה מבין למה שורה מסוימת לא תקינה בקוד מסוים

להלן הקוד הבא:
קוד:
class A
{
public:
	void foo() const {}
};

class B : private A
{
public:
void print() const
{
	foo();
}
};

void main()
{

B b;
b.print();
b.foo();
}

למה השורה
b.foo();
לא תקינה ?
 

BravoMan

Active member
כי למחלקה B אין פונקציה בשם foo...

כל עוד אינך יורש את A כ-public הפונקציות שלה לא יהיו public ב-B.
&nbsp
להזכירך: protected אומר שהמחלקה היורשת יכולה להשתמש, אבל זה עדיין חבוי ממישהו חיצוני כגון main.
 
למעלה