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

📄 phonevir.cpp

📁 c语言教程源码
💻 CPP
字号:
//这个程序在本书所带软盘中。文件名为PHONEVIR.CPP
//这个程序演示怎样利用多级继承和虚拟成员子程序来实现多态性。

#include <iostream.h>
#include <string.h>

class telephone {
	public:
		telephone(char *number);
		virtual void dial(char *outgoing_number);
	protected:
		char number[30];
};

telephone::telephone(char *number)
{
	strcpy(telephone::number, number);
}

void telephone::dial(char *outgoing_number)
{
	cout << "使用雇员或者办公室电话: " << outgoing_number;
}

class employee_phone: public telephone {
	public:
		employee_phone(char *number) : telephone(number) { };
		virtual void dial(char *dialed_number);
};

void employee_phone::dial(char *dialed_number)
{
	if (strlen(dialed_number) == 4)
		cout << "请稍等, 电话正在连接中... " << dialed_number << endl;
	else if (strlen(dialed_number) > 4)			//警告
	{
		cout << "这个电话只能拨打内线." << endl;
		cout << "你拨的号码: " << dialed_number << " 是外线电话!" << endl;
	}
	else
		cout << "你拨的号码: " << dialed_number << " 是错误号码! " << endl;
}

class office_phone: public employee_phone {
	public:
		office_phone(char *number): employee_phone(number) { };
		void dial(char *dialed_number);
};

void office_phone::dial(char *dialed_number)
{
	if(strlen(dialed_number) < 4)
		cout << "你拨的号码: " << dialed_number << " 是错误号码!" << endl;
	else
		cout << "请稍等, 电话正在连接到 9-" << dialed_number << endl;
}

void main(void)
{
	employee_phone yours("1111");
	office_phone boss("555-1234");

	telephone *phone;

	phone = &yours;
	phone->dial("222-3333");
	cout << endl;

	phone = &boss;
	phone->dial("222-3333");
}

/*这个程序运行后将显示如下输出结果:
这个电话只能打内线.
你拨的号码: 222-3333 是外线电话!

请稍等, 电话正在连接到 9-222-3333
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -