C++的学习心得和知识总结 第五章(完)

本文详细介绍了C++中运算符重载的实现,特别是复数类、String类以及vector容器的迭代器实现。讨论了运算符重载在对象运算中的作用,包括加法运算符、单目运算符以及输出运算符的重载。同时,文章探讨了迭代器在字符串和vector容器中的应用,分析了迭代器失效的原因及解决方案,展示了如何通过重载运算符和迭代器优化内存管理。此外,还讲解了new和delete的底层原理,以及如何通过内存池来提高内存管理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++的运算符重载:使对象的运算表现得和编译器内置类型一样


template
T sum(T a, T b)
{
return a+b; // a.operator+(b)
}
T 现在是我们用类型参数定义的一个类型(可以是任意用户实例化的类型),如果T是编译器内置类型的话(编译器自己就可以完成a+b了),但是如果不是(或者是类类型。则a b是两个对象 )a+b,编译器自己就完成不了了。(需要 进行运算符重载,即a.operator+(b).a调用自己的加法函数,把b作为实参传进去)。因此 在编程的时候,我们不需要写成这样:a.operator+(b),只需要提供+运算符重载, 我们就可以依旧写成统一的a+b(这个T 无论是内置类型还是类类型都是可以直接使用这套代码的)。
operator+()就是+运算符重载的成员函数。

第一节:复数类的实现

普通类型实现:

class CComplex
{
   
   
public:
	
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤傲小二~阿沐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值