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

📄 fax.cpp

📁 C++的常用算法
💻 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 + -