怎么解疑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)

相关推荐

  • 鲫鱼的做法大全家常菜,鲫鱼怎么做好吃

    技术鲫鱼的做法大全家常菜,鲫鱼怎么做好吃鲫鱼豆腐汤鲫鱼的做法大全家常菜:材料:
    鲫鱼1条、豆腐1盒、姜3片、葱3段、油、盐、胡椒、料酒、鸡精做法:
    1、鲫鱼开膛去内脏,去鳞去鳃(鱼档工作人员完成),洗净,抹干,用盐和

    生活 2021年10月20日
  • what是什么意思中文,whatsupman什么意思

    技术what是什么意思中文,whatsupman什么意思意思是:喂what是什么意思中文,伙计,最近怎样。What s up近来如何
    1、What` s up with this window, dude?
    这窗有什么

    生活 2021年10月24日
  • 编写JavaWeb项目的方法是什么

    技术编写JavaWeb项目的方法是什么这篇文章主要讲解了“编写JavaWeb项目的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“编写JavaWeb项目的方法是什

    攻略 2021年10月29日
  • oracle表碎片的整理分析

    技术oracle表碎片的整理分析本篇文章给大家分享的是有关oracle表碎片的整理分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

    攻略 2021年11月12日
  • CF161D Distance in Tree 题解

    技术CF161D Distance in Tree 题解 CF161D Distance in Tree 题解Description
    洛谷传送门
    Solution
    似乎各种做法都可以过,这里提供一篇 \

    礼包 2021年10月28日
  • 如何深入理解Java设计模式的迭代器模式

    技术如何深入理解Java设计模式的迭代器模式如何深入理解Java设计模式的迭代器模式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、什么是

    攻略 2021年11月5日