📄 fax.cpp
字号:
//这个程序在本书所带软盘中。文件名为FAX.CPP
//这个程序在基类中忽略了关键字virtual,使程序不再具有多态性。
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
class Fax {
public:
Fax(int); //构造函数用来对机器中的纸数进行初始化
void process(int); //关键字virtual被忽略,程序不再具有多态性
protected:
char phone_num[32];
int num_paper;
};
Fax::Fax(int paper)
{
num_paper = paper;
}
void Fax::process(int pages)
{
cout << "总纸数: " << pages << endl;
cout << "这是虚拟处理.." << endl;
}
class Fax_machine: public Fax{
public:
Fax_machine(char* phone, int paper) : Fax(paper)
{
strcpy(phone_num, phone);
}
void process(int);
};
void Fax_machine::process(int paper)
{
if (paper > num_paper)
{
cout << "不能完成传真!" << endl;
cout << "纸张已用完。还需要至少加入 " << (paper-num_paper)
<< " 页纸才可完成传真。谢谢!" << endl;
exit(1);
}
else {
cout <<"完成传真! " << endl;
cout << "传真发至: " << phone_num << endl;
cout << "传真发出页数: " << paper << endl;
}
}
class Printer: public Fax{
public:
Printer(int paper) : Fax(paper) { };
void process(int);
};
void Printer::process(int paper)
{
if (paper > num_paper)
{
cout << "不能完成打印!" << endl;
cout << "纸张已用完! 请至少加入 " << (paper-num_paper)
<< " 页纸才可完成打印。 谢谢!" << endl;
exit(1);
}
else {
cout << "完成打印! " << endl;
cout << "打印总页数为: " << paper << endl;
}
}
void main(void)
{
Fax_machine fax("324-8890", 100);
Printer printer(30);
Fax* use;
use = &fax;
use->process(9);
cout << endl;
use = &printer;
use->process(40);
}
/*这个程序运行后将显示如下输出结果:
总纸数: 9
这是虚拟处理..
总纸数: 40
这是虚拟处理..
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -