数组下标重载

C++重载二维数组下标 [ ][ ] C++重载二维数组下标 [][]一维数组的重载比较简单,直接参数传入下标值,然后返回指针对应的数值。但是如果是重载二维应该下标[][]应当如何解决?比如我们有 Array2 a(3, 4); int i, j; for (i = 0; i < 3; ++i) for (j = 0; j < 4; j++) a[i][j] = i * 4 阅读详情

可以用类定义数组,其实数组的个数就是对象实例化的个数,如下:

#include <iostream>
using namespace std;
class Array{
public:
	Array(int length)
	{
		this->This_length = length;
		this->This_array = new int[This_length];
	}
	void SetArray(int value, int index)
	{
		this->This_array[index] = value;
	}
	Array(Array &oop)
	{
		this->This_length = oop.This_length;
		for (int i = 0; i < This_length; i++)
		{
			this->This_array[i] = oop.This_array[i];
		}
	}
	int operator[](int index)
	{
		if (index>This_length || index < 0)
		{
			cout << "数组越界" << endl;
			return this->This_array[0];
		}
		return this->This_array[index];
	}
private:
	int This_length;
	int *This_array;
};
int main(void)
{
	Array oop(10);
	for (int j = 0; j < 10; j++)
	{
		oop.SetArray(j+1, j);
	}
	for (int i = 0; i < 10; i++)
	{
	
		cout << oop[i] << endl;
	}
	system("pause");
	return 0;
}
在该实例中,定义十个对象,如果不进行数组下标重载,在输出时就必须重新定义一个成员函数:

int GetArray(int index)
	{
		return this->This_array[index];
	}
在主函数中电泳该成员函数,才能访问其内部成员,但是经过数组操作符重载就可想操作数组那样操作对象了

for (int i = 0; i < 10; i++)
	{
	
		cout << oop[i] << endl;
	}





解决linux 2.5G网卡驱动问题 解决linux 2.5G网卡驱动问题 关键词:2.5G网卡驱动,ubuntu,安装,2.5G Ethernet LINUX driver,Realtek网卡驱动 由于2.5G网卡较新,各linux发行版的通用驱动已不适用,新装的系统会出现无法上网问题,由于国内网络环境去Realtek官网很难下载到驱动文件,故本文提供github上的2.5G Ethernet LINUX driver r8125 for kernel up to 5.6的版本驱动文件r8125-9.003.05.tar.bz2各位可以自 阅读详情

相关推荐

第18届全国大学生智能汽车竞赛四轮车控制策略深度解析:从舵机PID到速度闭环

本文深度解析了第18届全国大学生智能汽车竞赛中四轮车的核心控制策略。从舵机PID方向控制的基础原理与机械校准入手,详细阐述了误差计算、PD控制等关键环节;进而深入探讨了基于编码器的速度闭环控制,包括增量式PI算法与速度决策逻辑。文章结合实战经验,提供了方向环与速度环的协同调参思路与避坑指南,旨在帮助参赛者构建稳定、高效的智能车控制系统。

potato的博客 464

【C++】运算符重载 ⑩ ( 下标 [] 运算符重载 | 函数原型 int& operator[](int i) | 完整代码示例 )

一、下标 [] 运算符重载 1、数组类回顾 2、下标 [] 运算符重载 二、完整代码示例 1、Array.h 数组头文件 2、Array.cpp 数组实现类 3、Test.cpp 测试类 4、执行结果

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 2384

RT-Thread Studio与CubeMX联合编程(超级详细)

RT-Thread Studio与CubeMX联合编程 本文章参考以下文章: https://blog.youkuaiyun.com/qq_40824852/article/details/122596043 https://zhuanlan.zhihu.com/p/395106066 https://blog.youkuaiyun.com/m0_37697335/article/details/108890584 一、简介 经过上次对RT-Thread Studio的初步尝试,发现RT-Thread Studio中存在官方支

zhuzhu的博客 3万+

C++基础知识(四)---数组类、运算符重载

在调用函数时需要将实参对象完整地传递给形参,也就是建立一个实参的拷贝,系统是通过调用拷贝构造函数来实现的,这样就能保证形参具有和实参一样的值。

woshizuopie的博客 1287

微信数据库读取解密脚本 聊天记录查看工具,支持所有微信版本,后期将支持企业微信[Windows]

(1)获取微信昵称、微信账号、微信手机号、微信邮箱、微信KEY的基址偏移(2)获取微信的微信昵称、微信账号、微信手机号、微信邮箱、微信KEY、微信原始ID(wxid_******)(3)获取微信文件夹路径(4)支持查看聊天记录查看(5)根据key解密微信数据库(6)提供数据库部分字段说明(7)支持微信多开场景,获取多用户信息等(8)微信需要登录状态才能获取数据库密钥(9)支持导出聊天记录为html,备份微信聊天记录,方便查看(10)合并多个数据库,方便查看。

weixin_43101935的博客 1万+

FPGA时序分析中的工艺角:从PVT原理到建立保持时间验证

在数字电路设计中,静态时序分析(STA)是确保芯片功能正确和性能达标的核心验证手段。其基本原理是通过计算信号在逻辑路径上的传播延迟,检查建立时间和保持时间是否满足寄存器采样要求。这项技术的核心价值在于,它能在芯片制造前就预测并消除时序违规,极大提高设计成功率。然而,实际芯片性能会受到工艺波动、电压变化和温度漂移(合称PVT)的显著影响。为了覆盖这些不确定性,时序分析必须采用基于工艺角的边界模型——用最慢的工艺角模型验证建立时间,用最快的工艺角模型验证保持时间。这种分析方法广泛应用于FPGA和ASIC设计流程

weixin_30181209的博客 199

C++ 数组 5-- 重载数组下标操作符

#include &lt;iostream&gt;#include &lt;string&gt;using namespace std;/*---------------------------------    14-41重载数组下标操作符1)由于函数的参数是数组的下标,因此该函数只能带一个参数。2)由于下标运算符只限于本类的对象使用,因此不得将下标运算符重载为友元函数   且必须是非stati...

Paulliam的博客 1118

STM32+EC800M-CN 4G模块数据透传踩坑实录:从AT指令调试到花生壳内网穿透

本文详细介绍了STM32与移远EC800M-CN 4G模块的数据透传实现过程,包括硬件连接、AT指令调试、TCP连接建立以及花生壳内网穿透配置。通过实战案例和代码示例,帮助开发者快速解决4G通信模块在物联网应用中的常见问题,提升数据传输稳定性。

weixin_42715608的博客 328

【C++基础入门】29.C++中数组操作符的重载

文章目录 一、字符串类的兼容性 二、重载数组访问操作符 三、小结 一、字符串类的兼容性 问题:string 类对象还具备 C 方式字符串的灵活性吗?还能直接访问单个字符吗? string 类最大限度的考虑了 C 字符串的兼容性 可以按照使用 C 字符串的方式使用 string 对象 下面看一个用 C 方式使用 string 类的示例: #include <iostream> #include <string> using ...

老胡的博客 550

最新 抖音 X-Gorgon 0408 和8408 设备注册协议

抖音app先是检测了你的手机cpu架构,是x86还是armeabi,通过cpu架构的不同来调用so内不同的xg方法,所以导致现在最新版抖音app的xg算法有0408和8408两种。两种都是最新版,因为我发现当我使用oppo手机安装最新版抖音抓包的xg是8408,而当我用小米或者华为安装最新版抖音,抓包以后发现xg是0408。抖音IOS XG84 设备注册激活协议代码片段。...

Q44804487的博客 1万+

微信电脑版本不会自动下载图片吗?——没有找到解决方法。——只会默认下载doc等文件,图片不行,需要自己另存为——有什么办法解决吗?

微信电脑版本不会自动下载图片吗?——没有找到解决方法。——只会默认下载doc等文件,图片不行,需要自己另存为——有什么办法解决吗?此外,用户还可以选择将接收到的图片、视频和文件保存到指定的文件夹中。‌用户可以在微信设置中调整这一设置。

qq_15963745的博客 5092

C++小知识点:下标运算符[]的重载

下标运算符的重载有两种形式: 形式1:int& operator [] (int index); // 从外部可更改数组元素 形式2:const int& operator [] (int index) const; // 仅供元素的读写使用 对于形式1来说,其返回值是非const的,所以可以从外部通过下标操作符来更改数组的值,即如下语句是合法的: Array Arr(10);//定义一个非const对象 arr[5] = 7;//更改有效;相当于arr.operator[](5)=7,调用

miye15664742579的博客 2638

补丁1.0:使用Eviews做ADF检验

补丁1.0:使用Eviews做ADF检验

Jet4505的博客 1961

【C++】重载二维数组下标 [ ][ ]

1. 分析 重载一维数组下标很简单,通过下标传入的索引值,返回内部数组中相应的值。那重载二维数组的下标运算呢? 其实重载二维和一维本质是一样的,因为 C/C++ 中所谓的 “二维或多维数组”都是又简单的一维数组表示的。举个例子哈: 下面是两个 int 数组,第(1)个是熟悉的一维数组,第(2)个是熟悉的二维数组,现在你要做的就是将第(2)个数组看成是一个一维数组。

业精于勤荒于嬉,行成于思毁于随 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

重载数组下标运算符

#include &lt;iostream&gt; using namespace std; class Couple { public: //构造函数直接传进参数赋给私有成员数组成员 Couple(int a=0,int b=0){_a[0]=a,_a[1]=b;} //定义两个操作符函数,传递下表索引 //第一个是非常量的版本 //返回的是int &amp; 也就...

Pichairen 2303

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

重载数组下标操作符,使用operator

数组在类的定义中确定好了长度之后,就会限制所要存储的元素的个数,假如我们要存储的元素的个数超过了已确定的数组的长度,那么就会导致数组越界。故最好的办法就是在创建对象的时候才确定要存储元素的个数,即数组的长度,而不是在数组定义的时候。     此时,可采用重载数组下标操作符[]函数来解决,即创建一个char& A::operator[](int i);函数,i为创建对象数组传过来的下标值。具体例子

keeplooking2510的专栏 2953

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

重载二维数组下标 看的不是很明白 先mark一下

写在文章开头的话 读完这篇文章后,你将学习到下面的知识: (1)一个多维数组是如何工作的 (2)如何重载二维数组下标 1. 分析 重载一维数组下标很简单,通过下标传入的索引值,返回内部数组中相应的值。那重载二维数组的下标运算呢? 其实重载二维和一维本质是一样的,因为 C/C++ 中所谓的 “二维或多维数组”都是由简单的一维数组表示的。举个例子哈:

Little SunShine 1542

重载数组下标运算符之后,容易犯的一个小错误

重载数组下标运算符之后,容易犯的一个小错误

L_h_l_d的博客 197

详解c++中对二维数组下标[][]的重载

首先定义一个矩阵类,我用一个二维数组存储矩阵中的数据,矩阵详细定义如下 class Matrix { public: Matrix(int rows, int cols) { _rows = rows; _cols = cols; array = new int*[rows]; for ...

weixin_30535565的博客 1328

关于多维数组的下标重载

今天看到有人问,在2维或者多维数组的情况下怎样重载像[][]这样的操作符号。其实思路也不难啊,只不过是重载2个[]符号而已,并且2个[]的功能各不一样。 第一个[]应该定位行.最后一个[]应该返回最终数据的引用。 贴一下实现基本功能的代码吧,像越界检测,及其他功能就没写了,只要体现了思路,其他的功能好加。 #include iostream> #include st

hairetz的专栏 2444

C++(30)数组下标的运算符重载

重载[]和()运算符 运算符 [] 和 () 是二元运算符 [] 和 () 只能用成员函数重载,不能用友元函数重载 重载下标运算符 [] []运算符用于访问数据对象的元素 重载格式类型 类 :: operator[] ( 类型 )设 x 是类 X 的一个对象,则表达式 x [ y ] 可被解释为 x . operator [ ] ( y ) #include <i

To Be Continue 1051

C++程序设计方法3:数组下标运算符重载

数组下标运算符重载 函数声明形式 返回类型operator[](参数); 如果返回类型是引用,则数组运算符调用可以出现在等式的左边,接受赋值,即: Obj[index] = value; 如果返回类型不是引用,则只能出现在等号的右边 Var = Obj[index]; #include <iostream> #include <string> us...

weixin_30666943的博客 390

C++ 动态数组类模板中,为什么重载了指针转换运算符T *之后,还要重载下标运算符[ ]?

  重置指针转换运算符函数的声明: operator T *(); operator const T *() const;/*后置const是为了让常对象能调用这个成员函数(常对象只能调用常成员函数,不能调用普通成员函数); “const T*”表示,通过对象名创建动态数组后,通过对象名不能改变数组*/   假设动态数组类模板Array,假...

Spr Chan的博客 1982

C++之重载数组下标[]与圆括号()运算符的方法

重载数组下标运算符"[]":#include &lt;iostream&gt; using namespace std; class Vector { public: Vector(int a1, int a2, int a3, int a4) { m_nGril[0] = a1 ; m_nGril[1] = a2 ; m_nGril[2] = a...

老痒的农舍 9110

各类运算符重载及代码(加减,左移右移,赋值,关系,前置后置++,数组下标)

运算符重载的概念以及各类运算符重载及代码(加减,左移右移,赋值,关系,前置后置++,数组下标)

weixin_58796863的博客 2033
上一篇: 等号操作符重载
下一篇: 左移操作符重载
LiBin1103
博客等级 码龄9年 38粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值