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

📄 arrayov.cpp

📁 c语言教程源码
💻 CPP
字号:
//这个程序在本书所带软盘中,文件名为ARRAYOV.CPP
//这个程序演示数组下标运算符、赋值运算符以及输出重载在程序中的应用。

#include <iostream.h>
#include <process.h>					//系统头文件支持exit()

const int MAX = 10;						//假设最大数组单元为50
enum boolean {false, true};

class Array {
	friend ostream& operator << (ostream& out, Array obj);	//输出重载
	public :
		int& operator [] (int);			//数组下标运算符[]重载
		Array& operator = (Array obj);  //赋值运算符 = 重载
	private:
		int ary[MAX];
};

int& Array::operator [] (int index)     //完成对运算符[]重载子程序的编程
{
	if (index < 0 || index >= MAX)		//下标超界
	{
		cout << endl << "下标超界..." << endl;
		exit(1);
	}
	return ary[index];
}

Array& Array::operator = (Array obj)	//完成对运算符=重载子程序的编程
{
	for(int i = 0; i < MAX; i++)
		ary[i] = obj.ary[i];
	return *this;						//可以进行连接式调用
}

ostream& operator << (ostream& out, Array obj )  //完成输出重载编程
{
	for(int i = 0; i < MAX; i++)
		out << "[" << i << "] = " << obj.ary[i] << endl;
	return out;
}

void main(void)
{
	Array array1, array2, array3, array4;

	for (int i = 0; i < MAX; i++)
		array1[i] = i;			//调用运算符[]重载子程序并对成员数组单元赋值

	array2 = array1;			//调用运算符=重载子程序
	array4 = array3 = array1;	//连接式调用运算符=重载子程序
	int x = array1[MAX-1];		//调用运算符[]重载子程序

	//调用输出重载子程序
	cout << "数组 array1 中各单元值:" << endl << array1 << endl;
	cout << "数组 array2 中各单元值:" << endl << array2 << endl;
	cout << "数组 array4 中各单元值:" << endl << array4 << endl;
	cout << "数组 array1 的最后一个单元中的值为:" << x << endl;
}

/*这个程序运行后将输出下列结果:
数组 array1 中各单元值:
[0] = 0
[1] = 1
[2] = 2
[3] = 3
[4] = 4
[5] = 5
[6] = 6
[7] = 7
[8] = 8
[9] = 9

数组 array2 中各单元值:
[0] = 0
[1] = 1
[2] = 2
[3] = 3
[4] = 4
[5] = 5
[6] = 6
[7] = 7
[8] = 8
[9] = 9

数组 array4 中各单元值:
[0] = 0
[1] = 1
[2] = 2
[3] = 3
[4] = 4
[5] = 5
[6] = 6
[7] = 7
[8] = 8
[9] = 9

数组 array1 的最后一个单元中的值为:9
*/

⌨️ 快捷键说明

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