hafez1
دوشنبه 22 خرداد 1391, 15:33 عصر
فرض کنیددو تا کلاس به صورت زیر داریم
class Base{
public:
void BPub();
private:
void BPriv();
};
class Derived : public Base {
public:
void DPub();
private:
void DPriv();
};
و همچنین داریم
void Derived :: DPriv () {
DPub () ;
BPub () ;
BPriv () ;
}
وهمچنین داشته باشیم:
void foo(Base *);
void bar(Derived *);
آیا بیان موارد زیر درست است؟
void main(){
Base b,*pb;
Derived d,*pd;
d.BPriv();
foo(&d);
bar(&b);
pb=&d;
pd=pb;
pd=(Base *)&b;
}
در کل چه اتفاقی می افتد؟
class Base{
public:
void BPub();
private:
void BPriv();
};
class Derived : public Base {
public:
void DPub();
private:
void DPriv();
};
و همچنین داریم
void Derived :: DPriv () {
DPub () ;
BPub () ;
BPriv () ;
}
وهمچنین داشته باشیم:
void foo(Base *);
void bar(Derived *);
آیا بیان موارد زیر درست است؟
void main(){
Base b,*pb;
Derived d,*pd;
d.BPriv();
foo(&d);
bar(&b);
pb=&d;
pd=pb;
pd=(Base *)&b;
}
در کل چه اتفاقی می افتد؟