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

相关推荐

  • 如何深入Tomcat源码分析Session

    技术如何深入Tomcat源码分析Session如何深入Tomcat源码分析Session,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Session到底

    攻略 2021年12月8日
  • mysql事务有哪些特性

    技术mysql事务有哪些特性小编给大家分享一下mysql事务有哪些特性,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!简介事务是由一组sql语句

    攻略 2021年12月11日
  • 学生的拼音,用什么方法快速教孩子拼音和拼读

    技术学生的拼音,用什么方法快速教孩子拼音和拼读学习拼音,首先要让孩子熟记“三表”:声母表、韵母表、整体认读音节表学生的拼音;能熟练准确认读和默写,这是学好汉语拼音的基础.想要掌握汉语拼音,一能读准声母、韵母、声调和整体认

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

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

    攻略 2021年12月2日
  • 面试官:Spring 注解 @After,@Around,@Before 的执行顺序是

    技术面试官:Spring 注解 @After,@Around,@Before 的执行顺序是 面试官:Spring 注解 @After,@Around,@Before 的执行顺序是AOP中有@Before

    礼包 2021年11月11日
  • #define do{...}while(0)形式的意义,转载)

    技术#define do{...}while(0)形式的意义,转载) #define do{...}while(0)形式的意义(转载)#define do{...}while(0)这种奇怪形式的宏定义经

    礼包 2021年11月29日