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

相关推荐

  • C++迭代器与二分查找方法是什么

    技术C++迭代器与二分查找方法是什么本篇内容主要讲解“C++迭代器与二分查找方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++迭代器与二分查找方法是什么”吧!

    攻略 2021年11月30日
  • css中如何去掉i的斜体样式

    技术css中如何去掉i的斜体样式本篇内容主要讲解“css中如何去掉i的斜体样式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css中如何去掉i的斜体样式”吧!

    攻略 2021年11月11日
  • 抖音点赞在线自助平台网站,抖音点赞自助购买平台?

    技术抖音点赞在线自助平台网站,抖音点赞自助购买平台?抖音刷赞自助网站,抖音点赞自助购买平台操作流程,一些大牌厂商也已经入驻,发展前景非常可观,在带来欢乐的同时也成为营销的重要平台,这样一个,又有趣,又能挣钱,路子又正,用

    测评 2021年10月26日
  • 在Linux 6.3如何安装mysql5.7.16数据库

    技术在Linux 6.3如何安装mysql5.7.16数据库这篇文章主要介绍了在Linux 6.3如何安装mysql5.7.16数据库,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让

    攻略 2021年10月30日
  • C语言如何动态分配二维字符串数组

    技术C语言如何动态分配二维字符串数组这篇文章给大家分享的是有关C语言如何动态分配二维字符串数组的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。动态分配一个二维字符串数组(1) 分配可能不连续的内

    攻略 2021年10月31日
  • php中怎么创建ODBC

    技术php中怎么创建ODBC本篇内容介绍了“php中怎么创建ODBC”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ODB

    攻略 2021年11月25日