二维数组运算符重载
来源:互联网 发布:大数据技术相关书籍 编辑:程序博客网 时间:2024/06/06 20:37
二维数组运算符重载
这是Coursera一个公开课上的作业题
写一个类,可以满足输出为
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,
class Array2{public: Array2(){ curcol = -1; ptr = NULL; } Array2(int, int); Array2(Array2 &a); int* operator[](int); int& operator[](int) const; int& operator()(int a, int b);private: int **ptr; int size; int curcol; int col; int row;};Array2::Array2(int a, int b){ ptr = new int*[a]; size = a*b; for(int i=0;i<a;++i) ptr[i] = new int[b]; col = a; row = b; curcol = -1;}Array2::Array2(Array2 &a){ if( !a.ptr ){ ptr = NULL; size = 0; return; } ptr = new int*[a.col]; for(int i=0;i<a.col;++i) ptr[i] = new int[a.row]; memcpy(ptr, a.ptr, sizeof(int)*a.size); size = a.size;}int* Array2::operator[](int i){ curcol = i; return *(ptr+i);}int& Array2::operator[](int i) const{ return *(*(ptr+curcol)+i);}int& Array2::operator()(int a, int b){ return *(*(ptr+a)+b);}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;}
只是为了满足题目需求,所以没有扩展的很完全。
重载“[]“的时候纠结了很久,后来想起来C++里参数表相同,可以通过是否是const静态方法区分。
如果哪里写的有问题还请大家多多指教哈~~
0 0
- 二维数组运算符重载
- 运算符重载实现二维数组旋转
- []运算符的重载和二维数组类的[][]运算符重载
- 9-4 流运算符重载运算符(二维数组类Douary)
- 【旧资料整理】c++ 定义矩阵类CMatrix,重载二维数组运算符[][]方法
- C++矩阵类中的运算符重载和二维数组动态申请内存
- Coursera 编程题 #3 运算符重载 写一个二维数组类 Array2心得
- 运算符重载实例:数组
- 重载二维数组
- 二维数组操作运算
- C++:重载运算符避免数组越界
- 运算符重载两数组相加
- 自定义数组类运算符重载
- Problem D: 整型数组运算符重载
- Problem A: 整型数组运算符重载
- 数组类运算符的重载
- C++运算符重载(12) - 重载数组索引操作符[]
- 【C++】重载二维数组下标 [ ][ ]
- PHP mysql 两个数据库的表连接查询
- 我与大话设计模式之代码篇(三)---抽象工厂模式
- UITextField点击textField外任意区域键盘回收(二)---- TouchesBegan
- LightOJ 1047 - Neighbor House(DP)
- 虚拟机linux与主机时间同步
- 二维数组运算符重载
- cron表达式详解
- HTTP服务器响应状态信息
- 在Apache Spark上跑Logistic Regression算法
- 利用第三方开源框架 SwipeMenuListView 实现用户的左右侧滑事件
- JAVA线程安全之synchronized关键字的正确用法
- ORACLE 12C ——03 PDB(Pluggable Database)的创建
- 香港&韩国比较快的 DNS地址
- Mysql 对满足一定条件的 计数 常用的一条sql