POJ C++程序设计 编程题#3 编程作业—运算符重载
2015-08-24 09:36
1031 查看
编程题 #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,
程序:
#include <iostream> #include <cstring> using namespace std; // 在此处补充你的代码 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,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; // 在此处补充你的代码 class Array2 { private: int * a; int i, j; public: Array2() {a = NULL;} Array2(int i_, int j_) { i = i_; j = j_; a = new int[i*j]; } Array2(Array2 &t){ i = t.i; j = t.j; a = new int[i * j]; memcpy(a, t.a, sizeof(int)*i*j); } Array2 & operator=(const Array2 &t) { if (a != NULL) delete []a; i = t.i; j = t.j; a = new int[i*j]; memcpy(a, t.a, sizeof(int)*i*j); return *this; } ~Array2() {if (a != NULL) delete []a;} // 将返回值设为int的指针,则可以应用第二个【】,不用重载第二个【】操作符 int *operator[](int i_) { return a+i_*j; } int &operator()(int i_, int j_) { return a[i_*j + 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; }
View Code
相关文章推荐
- 再论C语言指针—对指针的理解
- 开方.cpp
- C语言之位运算
- 《effective C++》:条款37——绝不重新定义继承而来的缺省参数值
- C++中头文件相互包含
- C语言的低级运算
- C++整理1
- C++语言的getline在cl和g++中的不同语义
- C++用多种方式实现Singleton单例模式
- 【C语言】预处理指令—条件编译
- C++: 安装minGW,Msys;对接NeatBeans IDE
- C++正则表达式
- C++ 的那些坑 (Day 2)
- 【C语言】预处理指令—宏定义
- C语言基础--while循环
- C++对象模型——效率有了,弹性呢(第七章)
- C语言基础--switch
- C++中string类的常用函数
- C语言插入排序
- c语言数组方式实现静态循环队列