96SEO 2026-02-19 09:05 0
本篇文章旨在记录博主在模拟实现string类中遇到的一些问题希望与大家共勉在模拟实现string类的过程中运用了之前所学的很多知识包括一些问题的出现都是对之前所学知识的考验为了更加深入的了解和掌握string类大家不妨跟随博主的步伐一起看看遇到这些问题时你是否可以轻松应对利用之前所学解决实际问题。

欢迎大家收藏以便未来做题时可以快速找到思路巧妙的方法可以事半功倍。
const修饰形参的意义主要体现在输入型参数上尤其是指针类型和引用const修饰某个变量肯定是为了保护该变量的值不被改变。
当然是我们需要他作为函数的输入时输出型参数我们需要他根据函数功能做出改变所以肯定不需要用const修饰。
那我为什么又说const修饰输入型参数尤其在指针类型和引用呢其他普通类型呢
因为我们知道形参是实参的一份临时拷贝形参的改变不会影响实参所以我们也就不需要保护它因为它的改变不会影响到实参本身。
那为什么要用引用我直接传不就得了反正也只是拷贝不会影响本身这样也省得使用const来保护了。
我们知道引用就是本身的一个别名实际上就是本身所以当我们传递引用时就节省了拷贝的代价为了效率我们值得做出这样的操作但为了保护好我们本身不被修改一定要用const修饰这样可以增强程序的健壮性防止我们的程序崩溃。
类的有些对象可能可以改变有的不能改变举个例子来说对于string对象来说有的我们可能希望定义的string对象可以改变有的则不能改变
我们如果进行下标操作符运算str1[0]f这是允许的而str2[1]f则是不允许的。
并且这两个操作调用的成员函数也是不一样的前一个调用的是string类的非const成员函数后一个调用的是string类的const成员函数
如果我们没有定义const成员函数则str2会调用相应的非const成员函数从而导致我们本来不想其被修改的对象被意外修改。
实际上如果函数返回的是普通的变量即值传递那确实没有什么意义因为根据前面的学习函数是如何返回值的呢实际上是拷贝拷贝一份内容相同的常量返回那它本来就是常量你再用const修饰那不多此一举了么。
是的所以如果函数返回采用值传递的方式那const这里就没有任何意义。
const修饰返回值真正的意义在于指针传递返回用来赋值给const修饰的指针内容。
之前我们说过除了函数作用域返回对象就会被销毁不能用引用返回否则结果是不确定的。
是因为string所使用的空间为动态内存new来的我们说引用做返回值可用静态变量或动态内存。
引用做返回值的主要目的就是能够修改返回的内容加const是为了适配const
const修饰成员函数实际上修饰的是该成员函数隐含的this指针表明在该成员函数中不能对类的任何成员进行修改。
类型这样const对象和非const对象都可以调用该函数。
如果在编写const
const对象不可以调用非const成员函数非const对象可以调用const成员函数const成员函数内部不能调用其他非const成员函数非const成员函数内部可以调用其他const成员函数。
博主在实现string类时统一的把函数定义都以内联的形式实现了当然后期实现完成尝试着想要声明与定义分离下但却出现了很多报错这里我梳理一下形成了以下内容。
首先分离后的第一个问题就是由于我之前在头文件中类的实现部分都包含在了命名空间内部。
所以首先需要解决这一问题我们可以采用左图这种方式当然右面的方式显然更好
如果.h文件中存在函数定义不包括成员函数只要存在多个cpp文件并且他们都包含了string.h头文件那他们在展开时就会出现重定义的问题。
首先完成用s._str完成构造tmp对象然后交换*this与tmp交换后tmp析构。
在之前的学习中我们知道流插入与流提取的实现要放在全局从而保证第一个参数不为this指针但当时面临一个问题我们实现的是日期类想要打印日期类就必须访问到类的成员变量但我们知道成员变量一般都是私有的所以我们引入了友元的概念用来解决这一问题。
樊梓慕---类和对象中之拷贝构造与运算符、操作符重载【CSDN】http://t.csdnimg.cn/2wbiI
如果你对该系列文章有兴趣的话欢迎持续关注博主动态博主会持续输出优质内容
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback