分类: C/C++
2008-06-24 14:49:34
基类指针为什么可以指向派生类,而派生类指针不可以指向基类??
对于基类man, 派生类child有这样的关系:
child is a man , but man is not a child.
派生类指针指向基类,等于告诉编译器,man is a child,和事实是矛盾的,所以编译器不允许.
“派生类可以初始化基类的引用”是什么意思?
就是说派生类指针指向基类,但是它只能访问基类中的成员,而它自身成员不能访问;同样当给一个函数传递一个派生类指针是,也可一传递一个基类指针,但是要注意指针所含数据的成员范围!
.纯虚函数是作为面向对象程序设计的基础的.
比如:
void Fun(A *a)
{
a->.....//通过a调用虚函数
}
当传递不同的A的子类时,里面a->....调用的方法也不一样,这即为“多态”。
2.派生类构造前需要先构造父类,所以需要调用父类的构造函数。
且T(a,b,n)属于初始化列表.(即先于自己的构造函数体执行之前执行)
构造函数的调用顺序是从父类到子类;而析构函数则是从子类到父类