注册 登录
编程论坛 C++教室

求助:这是基类指针指向派生类中成员函数的方法吗?

bardon_2009 发布于 2012-01-19 22:59, 872 次点击
从百度下载了一个C++课程设计源程序,并通过了编译与运行,程序OK。
但读到程序中类指针用法时,一时找不到这样用法的出处,请大虾指点,谢谢,祝春节快乐!

程序进行了简化,问题在程序中标注的问号处,谢谢。

class Person //员工类
{
friend class Company;

}

class Cservant:public Person //文员类
{
public:
void SetWorkload(double Amount) ;
}
}
class Company //公司类
{
void Add(); //增加人员

}

void Company::Add()
{
Person *p
((Cservant *)p)->SetWorkload(Workload);

//??????????????????????????????
// 这是基类指针指向派生类中成员函数的方法吗?

}  
3 回复
#2
鑫乐源2012-01-20 00:00
基类提升,,

这里你理解为 只是把指针p指向的一块内存由基类类型解释成派生类类型,

前提条件p必须是Cservant实例
#3
bardon_20092012-01-20 09:24
以下是引用鑫乐源在2012-1-20 00:00:49的发言:

基类提升,,

这里你理解为 只是把指针p指向的一块内存由基类类型解释成派生类类型,

前提条件p必须是Cservant实例
谢谢指点,从哪里找到如此用法的出处?
#4
bardon_20092012-01-20 10:26
  在网上找到了依据,就是基类指针被强制转换为派生类指针的用法。
1