⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 有问题.txt

📁 里面的代码是自己写的,构思来自于c++primer,对于学习c++语法有非常大的帮助,希望对c++初学者有所帮助
💻 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 + -