怎么解疑C++对象传递实际应用问题

技术怎么解疑C++对象传递实际应用问题这篇文章将为大家详细讲解有关怎么解疑C++对象传递实际应用问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C++语言功能非常强大,

本文将详细讲解如何解决C对象传输的实际应用。文章内容质量很高,我就分享给大家作为参考。希望大家看完这篇文章后对相关知识有一定的了解。

c语言非常强大,不仅可以支持各种编程,还具有面向对象的特点,极大地满足了开发者的需求。这里我们来看看C对象传输的相关内容,从中可以学到很多东西。

如果函数的返回值是一个对象,在某些情况下,用C对象传递中的“引用传递”替换“值传递”可以提高效率。但是,在某些情况下,你只能使用“价值转移”而不是“参考转移”,否则你会出错。

例如:

class string {//赋值函数stringpere=(conststringheart);//加法函数,如果没有friend修改,只有一个右参数friendstringpere(const strings 1,const strings 2);private:char * m _ data}赋值函数operate=of } String的实现如下:

stringstring : operation=(conststringThEr){ if(this==other)返回* thisdeletem _ datam _ data=new char[strlen(other . data)1];strcpy(m_data,other . data);返回*这个;//返回*this的引用,无需复制过程。}对于赋值函数,在C对象传递中应该以“按引用传递”的方式返回String对象。如果使用“值传递”,虽然函数仍然是正确的,但return语句需要将此复制*到存储返回值的外部存储单元,这增加了不必要的开销,降低了赋值函数的效率。例如:

斯特林加,b,c;a=b;//如果使用“价值转移”,将产生一份*本,a=b=c;//如果使用“值传递”,它将产生*这个的两个副本。String,oper的加法函数的实现如下:String oper(const strings 1,const strings 2){ String Temp;deletetemp.data//temp.data仅为lsquo\在…之时数据=newchar [strlen (S1)。数据)斯特伦(S2。数据)1];strcpy(temp.data,S1 . data);strcat(temp.data,S2 . data);returntemp}对于加法函数,应该以“值传递”的方式返回String对象。如果改为使用“引用传递”,函数的返回值是指向本地对象temp的“引用”。由于temp在函数结束时被自动销毁,返回的“引用”将无效。例如:

c=a b;此时A和B都没有回到预期值,C一无所获,留下了隐患。

如何解决C对象转移的实际应用问题就分享到这里,希望。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/52394.html

(0)

相关推荐

  • 音视频提取功能组件EasyStreamingServer读取本地文件时如何修复内存泄漏问题?

    技术音视频提取功能组件EasyStreamingServer读取本地文件出现内存泄露问题该如何修复本篇文章为大家展示了音视频提取功能组件EasyStreamingServer读取本地文件出现内存泄露问题该如何修复,内容简

    攻略 2021年12月21日
  • 带虫的字,带“虫”字的词语有哪些

    技术带虫的字,带“虫”字的词语有哪些带“虫”字的词语有带虫的字:蛊虫、麦秆虫、鼠啮虫穿、虫沙猿鹤、水火兵虫、物腐虫生
    1、组词释义:
    ①、蛊虫[ gǔ chóng ]
    粮食中蛀虫所化的蛾。 传说一种人工培育的毒虫。
    ②、

    生活 2021年10月25日
  • 高抬腿的正确做法,高抬腿的动作要领是什么

    技术高抬腿的正确做法,高抬腿的动作要领是什么原地高抬腿:运动者的位置大致不发生变化的高抬腿运动。  高抬腿跑:运动者在交替抬腿的同时向前(快速)移动。动作要领:标准动作是在保持上身挺直的情况下高抬腿的正确做法,两腿交替抬

    生活 2021年10月25日
  • 选择优秀物联网数据库的5个步骤分别是什么

    技术选择优秀物联网数据库的5个步骤分别是什么选择优秀物联网数据库的5个步骤分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。要选择最佳的物联网数据

    攻略 2021年12月2日
  • potato的复数形式,potato的复数形式是什么

    技术potato的复数形式,potato的复数形式是什么potato的复数形式是potatoespotato的复数形式。 英 [pəteɪtəʊ],美 [pəteɪtoʊ]     n. 马铃薯;土豆
    例句:
    1、T

    生活 2021年10月23日
  • new的反义词,“new”的反义词是什么

    技术new的反义词,“new”的反义词是什么new的反义词是oldnew的反义词;old;英 [əʊld] 美 [oʊld] adj.老的;古老的;以前的;(用于指称被替代的东西)原来的n.古时比较级: older

    生活 2021年10月27日