标签:
父类的指针指向子类的对象,这一特性在c++中叫做多态。
当然,多态还可以有更深的解释。
可是,为什么有时候父类的指针指向不了子类的对象?
有如下两个文件的代码:
//B.h class B : public A{}; //main.cpp Class A; Class B; void fun(B* b) { A* a = b; //这边有错 }
原因是这样子的,有时候我们为了提高编译速度,
会做一些前置声明,比如Class A 告诉编译器A存在。
而后我们可以 A a ;定义一个对象
可是当你要这么写的时候A* a = b;
编译器并不知道A是B的父类,所以
就报错了。最简单的方法是把B的头文件包含进来。
标签:
原文地址:http://my.oschina.net/u/264056/blog/394546