父類的指針沒法指向子類對象

父類的指針指向子類的對象,這一特性在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

相關文章
相關標籤/搜索