📄 有问题.txt
字号:
/*本程序属于第19章,为了说明dynamic_cast的用法。所用的例子就是书上的P836页的描述公司
职员薪水salary()和奖金bonus()(只有程序员才有奖金)发放情况的程序
*/
#include <iostream>
using namespace std;
class employee {
public:
virtual void salary();
virtual ~employee(){ }
};
class manager : public employee {
public :
void salary();
};
class programmer: public employee {
public:
void salary();
void bonus();
~programmer(){}
};
void employee::salary()
{
cout << "employee::salary()" << endl;
}
void manager::salary()
{
cout << "manager::salary()" << endl;
}
void programmer::salary()
{
cout << "programmer::salary()" << endl;
}
void programmer::bonus()
{
cout << "programmer::bonus()" << endl;
}
void main()
{
employee *pe = new programmer;
pe->salary(); //输出的是programmer::salary()
//pe->bonus(); //显然此句出错 error C2039: “bonus” : 不是“employee”的成员
//那么如何使用pe所指的programmer对象的bonus()呢?
if ( programmer * ppm = dynamic_cast< programmer *>( pe ) )
{
ppm->bonus();
}
delete pe;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -