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