运算符重载-编程题#3(C++程序设计第4周)
来源:互联网 发布:c语言运算符 编辑:程序博客网 时间:2024/06/06 02:20
编程题 #3
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
写一个二维数组类 Array2,使得下面程序的输出结果是:
0,1,2,3,
4,5,6,7,
8,9,10,11,
next
0,1,2,3,
4,5,6,7,
8,9,10,11,
程序:
输入
无
输出
0,1,2,3,
4,5,6,7,
8,9,10,11,
next
0,1,2,3,
4,5,6,7,
8,9,10,11,
样例输入
样例输出
代码:
#include <iostream>#include <cstring>using namespace std;// 在此处补充你的代码//定义一个类Array2//要重载操作符'[]',支持二维数组下标//要重载操作符 '()'//要进行深度拷贝,建立自己的拷贝构造函数class Array2{private:int arr[10][10];public:Array2();Array2(int, int);int* operator [](int i);int operator()(int i, int j);Array2(Array2& c);};//建立默认构造函数Array2::Array2(){for (int i = 0; i < 10; i++)for (int j = 0; j < 10; j++){arr[i][j] = 0;}}//建立构造函数,初始化二维数组arrArray2::Array2(int a, int b){for (int i = 0; i < a; i++)for (int j = 0; j < b; j++){arr[i][j] = 0;}}//重载操作符'[]',支持二维数组下标int* Array2::operator [](int i){return arr[i]; //它是二维数组arr的第i个元素,即第i个小数组的首地址,故返回值类型应该为int* }//重载操作符 '()' int Array2::operator()(int i, int j){return arr[i][j];}//建立自己的拷贝构造函数,进行深度拷贝Array2::Array2(Array2& c){for (int i = 0; i < 10; i++)for (int j = 0; j < 10; j++){arr[i][j] = c.arr[i][j];}}int main() {Array2 a(3, 4);int i, j;for (i = 0; i < 3; ++i)for (j = 0; j < 4; j++)a[i][j] = i * 4 + j; //说明要重载操作符'[]',支持二维数组下标for (i = 0; i < 3; ++i) {for (j = 0; j < 4; j++) {cout << a(i, j) << ","; //说明要重载操作符 '()'}cout << endl;}cout << "next" << endl;Array2 b; b = a; //说明要进行深度拷贝for (i = 0; i < 3; ++i) {for (j = 0; j < 4; j++) {cout << b[i][j] << ",";}cout << endl;}return 0;}
0 0
- 运算符重载编程题3(C++程序设计第4周)
- 运算符重载-编程题#3(C++程序设计第4周)
- 运算符重载编程题1(C++程序设计第4周)
- 运算符重载编程题2(C++程序设计第4周)
- 运算符重载-编程题#1(C++程序设计第4周)
- 运算符重载-编程题#2(C++程序设计第4周)
- C02-程序设计基础提高班(C++)第11周上机任务-运算符重载
- C++程序设计-第8周 运算符的重载
- 运算符重载 编程题#2(Coursera 程序设计与算法 专项课程3 C++程序设计;重载:& operator-)
- MOOC清华《面向对象程序设计》第3章编程题第1题:重载函数运算符以封装排序算法
- MOOC清华《面向对象程序设计》第3章编程题第2题:重载下标运算符以统计分段人数
- * 运算符重载 编程题#4:大整数的加减乘除(Coursera 程序设计与算法;重载:& operator <<, & operator >>, +, -, *, /)
- 运算符重载 编程题#1(Coursera 程序设计与算法 专项课程3 C++程序设计;重载:& operator =, operator =)
- 第2.6节:运算符重载(C++)
- 谭浩强C++程序设计第10章运算符重载
- C++程序设计 - Week 4 运算符重载
- 运算符判定(C程序设计进阶第9周)
- POJ C++程序设计 编程题#1 编程作业—运算符重载
- leetcode 492 python
- android利用socket与java后台交互的设计与实现
- 亿级Web系统搭建——单机到分布式集群
- 如何用LaTeX写简历
- 蓝桥杯算法训练——操作格子(线段树+单点更新+区间求和+求最大值)
- 运算符重载-编程题#3(C++程序设计第4周)
- JS实现HTML5音频播放自定义UI
- Linux线程模型比较
- bzoj 3105 线性基
- Nginx支持Socket转发过程详解
- CodeForces 763C. Timofey and remoduling
- 1008. 数组元素循环右移问题 (20)
- 不重复数
- Poj 3658 Artificial Lake(模拟)