父類的指針指向子類的對象,這一特性在c++中叫作多態。c++
固然,多態還能夠有更深的解釋。指針
但是,爲何有時候父類的指針指向不了子類的對象?code
有以下兩個文件的代碼:對象
//B.h class B : public A{}; //main.cpp Class A; Class B; void fun(B* b) { A* a = b; //這邊有錯 }
緣由是這樣子的,有時候咱們爲了提升編譯速度,編譯器
會作一些前置聲明,好比Class A 告訴編譯器A存在。編譯
然後咱們能夠 A a ;定義一個對象class
但是當你要這麼寫的時候A* a = b; 方法
編譯器並不知道A是B的父類,因此文件
就報錯了。最簡單的方法是把B的頭文件包含進來。co