当前位置: 首页 > news >正文

网站是如何做的海南台风最新消息今天

网站是如何做的,海南台风最新消息今天,济南建站都选企汇优先做后付,做地产设计的公司对象型参数和返回值 1.对象型类型作为函数的参数2.对象型参数作为函数的返回值 1.对象型类型作为函数的参数 使用对象类型作为函数的参数或者返回值,可能会产生一些不必要的中间对象 例子: // 使用对象类型作为函数的参数 void test1(Car car) {}完整代…

对象型参数和返回值

  • 1.对象型类型作为函数的参数
  • 2.对象型参数作为函数的返回值

1.对象型类型作为函数的参数

使用对象类型作为函数的参数或者返回值,可能会产生一些不必要的中间对象

  • 例子:
// 使用对象类型作为函数的参数
void test1(Car car) {}

完整代码如下:

class Car {
public:Car() {cout << "Car() - " << this << endl;}Car(const Car &car) {cout << "Car(const Car &) - " << this << endl;}~Car() {cout << "~Car() - " << this << endl;}void run() {cout << "run()" << endl;}
};// 使用对象类型作为函数的参数
void test1(Car car) {}Car test2() {return Car();
}int main() {Car car1; // Car()test1(car1);getchar();return 0;
}
  • 输出:
    可以看到调用了构造函数,析构函数;
    另外还可以看到程序还调用了一个拷贝调用函数
    也就是car1对象传给test()函数的时候,发现它调用了拷贝调用函数,也就是在这个过程中产生了一个新的中间变量
    在这里插入图片描述
    这样做是不好的,怎么去避免这个问题?

答:把外面的对象传给这个函数,就是希望这个函数里面可以访问到外面对象的一些属性,可以用引用或者指针来代替。

void test1(Car &car) {
}

输出:
在这里插入图片描述
没有调用拷贝构造函数

因此建议函数参数中不要使用对象型类型作为函数参数

2.对象型参数作为函数的返回值

class Car {
public:Car() {cout << "Car() - " << this << endl;}Car(const Car &car) {cout << "Car(const Car &) - " << this << endl;}~Car() {cout << "~Car() - " << this << endl;}void run() {cout << "run()" << endl;}
};
// 对象型参数作为函数的返回值
Car test2() {Car car;return Car();
}int main() {Car car2; // Car()car2 = test2();getchar();return 0;
}
  • 这一次在函数里定义了一个对象,并且返回对象
// 对象型参数作为函数的返回值
Car test2() {Car car;return car;
}

输出结果会发现调用了两次构造函数,一次拷贝构造函数

在这里插入图片描述
首先就是创建对象时,调用了一次

Car car2; // Car()

然后就是在函数里创建对象,又调用了一次

Car test2() {Car car;return car;
}

第三次是函数的返回值返回来一个car对象,这个返回值赋给了 car2 对象,相当于一次浅拷贝

	car2 = test2();

因为函数调用后会自动销毁,里面的栈空间会被回收,但是你还要返回对象值,所以就会提前拷贝构造出一个新的对象,将这个新的对象存在main()的栈空间中。

所以最好不要以对象型类型为函数参数或为返回值,会产生很多不必要的中间变量

http://www.laogonggong.com/news/93739.html

相关文章:

  • 自己电脑做网站主机wordpress的模板目录在哪里
  • 网站申请腾讯绿标认证it行业有哪些职业
  • 蓝色 网站公司logo设计用什么软件
  • 网站免费源码大全无用下载15个网页设计的案例
  • 河北衡水建设网站公司城建网站论坛 建设
  • 国外平台提升seo搜索排名
  • 做网站 图文教程做网站要几个部门组成
  • 内网网站建设wordpress安装页面错乱
  • 网站界面用什么软件做上传了源程序提示网站建设中
  • 小型企业建设网站比利时网站的后缀
  • 做网站3个月ocin wordpress主题
  • 临沂网站建设网站推广河南省百城建设提质网站
  • 网站表单提交到qq邮箱网站建设规范方案
  • 广州网站建设 知名电子商城网站开发与设计
  • 怎么看一个网站做的好不好湘潭网站建设优化技术
  • 外贸网站 服务器成都房地产信息查询平台
  • 申请网站建设费用的请示湖南省建设厅官网网站
  • 企业门户网站 源码百度秒收录蜘蛛池
  • 自己怎么样做网站定制网站与模板网站的主要区别
  • 免费的空间网站关于建立公司网站的申请
  • 行业网站建设详解网站建设公司电话销售
  • 潍坊网站制作怎么做网站建设难点分析
  • 山西网站建设运营公司公司想做网站
  • 金科科技 做网站济南小程序网站开发
  • 我想开个网站视频剪辑自学网站
  • 网站设计规划教学设计网站无缝背景
  • 网站建设连接到百度网站设计推广
  • 网站做seo优化有什么优势wordpress标签云插件下载
  • 大众网站平安建设之星用于做网站头的图片
  • 国外免费建站网站组织建设一百年心得体会