שאלה ב C++
נתון הקוד הבא:
class A
{
public:
virtual int get() { return 111;}
};
class A1
{
public:
virtual int momo() { return 222;}
};
class B : public A1, public A
{
public:
int get() { return 333;}
};
void *makeB()
{
return new B();
}
main()
{
A *p1, *p2;
p1 = new B();
p2 = (A*)makeB();
int a1= p1->get(); // = 333
int a2= p2->get(); // = 222 ???????????
}
למה a2 מקבל את הערך 222 ?
הרי לא קראתי בשום מקום לפונקציה momo .
נתון הקוד הבא:
class A
{
public:
virtual int get() { return 111;}
};
class A1
{
public:
virtual int momo() { return 222;}
};
class B : public A1, public A
{
public:
int get() { return 333;}
};
void *makeB()
{
return new B();
}
main()
{
A *p1, *p2;
p1 = new B();
p2 = (A*)makeB();
int a1= p1->get(); // = 333
int a2= p2->get(); // = 222 ???????????
}
למה a2 מקבל את הערך 222 ?
הרי לא קראתי בשום מקום לפונקציה momo .