给二维指针分配内存和[][]操作符的重载
来源:互联网 发布:淘宝内部券公众号 编辑:程序博客网 时间:2024/05/17 12:25
#include <iostream>#include <cstring>#include<memory.h>using namespace std; class Array2{private:int ** _array; /* 把二阶数组看成一阶数组,结果在两个[][]重载不行,所以换成指针的指针,ie.数组的数组。虽然从二维数组的角度看内存不连续。 */ int _row, _col;public:Array2(){_array = new int*[1];_array[0] = new int[1]; _row =1; _col = 1;//可以直接 Array2(1,1)? }Array2(int row, int col){//分两步申请内存。 _array = new int*[row];for(int i = 0;i<row; i++){_array[i] = new int[col];}_row = row; _col = col;}~Array2(){//指针的指针要从底层开始释放空间 for(int i=0;i<_row;i++){delete [] _array[i];}delete [] _array;}Array2 & operator = (Array2 & a){//先把原来的空间delete for(int i=0;i<_row;i++){delete [] _array[i];}delete [] _array;//在开一个和a一样大的空间。 _array = new int*[a._row];for(int i = 0;i<a._row; i++){_array[i] = new int[a._col];}_row = a._row; _col = a._col;//还有a数组里面的内容也要复制。for(int i=0;i<_row;i++)for(int j=0;j<_col;j++){_array[i][j] = a._array[i][j];}}int * operator[] (int index)//返回值是指针 {return _array[index];}int & operator () (int i, int j){return _array[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
- 给二维指针分配内存和[][]操作符的重载
- C++中给二维指针分配内存
- 二维指针的malloc内存分配
- 二维数组和指向指针的指针 ,指针做形参做局部变量以及内存分配
- 指针数组,数组指针,二维数组的动态内存分配
- Delphi 的内存操作函数(3): 给结构体指针分配内存
- Delphi 的内存操作函数(1): 给字符指针分配内存
- Delphi 的内存操作函数(2): 给数组指针分配内存
- Delphi 的内存操作函数(3): 给结构体指针分配内存
- Delphi 的内存操作函数(1): 给字符指针分配内存
- 二维数组、数组指针、指针数组和指针的指针分析(另数组的内存分配方式)
- C语言的二维指针及其动态内存分配和释放
- char ** str的使用方法:动态内存分配-------二维指针
- C语言有关内存分配函数、内存操作函数和函数指针的总结
- 指针和堆的内存分配
- delphi 指针的内存分配和释放
- 指针的内存分配和释放
- 指针参数的传递和内存分配
- 【打杂】风险管理
- 根据图片的url获取图片的尺寸
- IOS App自动化测试环境配置 - Selenium2.0+Appium
- 写日志
- ios试图
- 给二维指针分配内存和[][]操作符的重载
- Rational AppScan破解安装详解
- 监听Fragment中控件接口
- 由浅入深理解Python装饰器
- Mybatis3,Spring MVC 事务配置
- 指针数组VS数组指针
- python中的实例方法、静态方法、类方法、类变量和实例变量浅析
- java 缓存输入输出流
- Linux(Ubuntu)入门