非多态的继承情况下,基类指针可以指向派生类对象么?
生活随笔
收集整理的這篇文章主要介紹了
非多态的继承情况下,基类指针可以指向派生类对象么?
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
class Base { // 基類
public:Base(int aa=88) : a(aa) {}void f() { // 非virtualcout<<"Base"<<endl;}int a;
};
class Derived : public Base { // 派生類
public:Derived(int ba= 77, int bb = 66) : a(ba), b(bb) {}void f() { // 非多態(tài)cout<<"Derived"<<endl;}int a;int b;
};int main(){Base* p = new Derived();p->f(); // Base(*p).f(); // Basestatic_cast<Derived*>(p)->f(); // Derivedcout<<p->a<<endl; // 88 基類cout<<static_cast<Derived*>(p)->a<<endl; // 77cout<<static_cast<Derived*>(p)->b<<endl; // 66delete p;return 0;
}
備注:非多態(tài)情況下,基類的指針可以指向派生類的對(duì)象,但是調(diào)用方法時(shí),使用的是它本身類型的方法,因?yàn)樗环隙鄳B(tài)的定義。
?
總結(jié)
以上是生活随笔為你收集整理的非多态的继承情况下,基类指针可以指向派生类对象么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python学习实践教程】10个Pyt
- 下一篇: 调试网络收发不通问题