📄 phonevir.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 + -