标题:求助:这是基类指针指向派生类中成员函数的方法吗?
取消只看楼主
bardon_2009
Rank: 2
等 级:论坛游民
帖 子:23
专家分:28
注 册:2012-1-14
结帖率:100%
已结贴  问题点数:20 回复次数:2 
求助:这是基类指针指向派生类中成员函数的方法吗?
从百度下载了一个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);

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

}  
搜索更多相关主题的帖子: class void 百度下载 public double 
2012-01-19 22:59
bardon_2009
Rank: 2
等 级:论坛游民
帖 子:23
专家分:28
注 册:2012-1-14
得分:0 
以下是引用鑫乐源在2012-1-20 00:00:49的发言:

基类提升,,

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

前提条件p必须是Cservant实例
谢谢指点,从哪里找到如此用法的出处?
2012-01-20 09:24
bardon_2009
Rank: 2
等 级:论坛游民
帖 子:23
专家分:28
注 册:2012-1-14
得分:0 
  在网上找到了依据,就是基类指针被强制转换为派生类指针的用法。
2012-01-20 10:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-359887-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.426745 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved