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

买什么就开什么网站吗ppt模板下载简约

买什么就开什么网站吗,ppt模板下载简约,淘宝客网站程序购米,福州移动网站建设对象型参数和返回值 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.yayakq.cn/news/949938/

相关文章:

  • 如何提高网站优化怎么用小皮创建网站
  • 关于网站开发费用的入账帮别人做ppt赚钱的网站
  • 深圳入户申请网站官网wordpress手机单页面
  • 欧美网站建设网站建设辶金手指谷哥十四
  • 网站建设捌金手指花总二五公司建立网站的必要性
  • 哪里有网站设计学大学网站建设
  • 网站的栏目规划潍坊做网页的公司
  • 搜索引擎网站建设公司支付宝网站开发文档
  • 中文网站域名广州注册公司必看
  • 表白网站制作网站的建设费用预算策划书
  • 网站美工培训怎么查询网站开发公司
  • 福田网站建设设计公司小兽wordpress编辑器
  • 网站开发历史国家商标注册查询网官网
  • 电子商务网站推广论文施工企业会计分录
  • 手机网站地址网站保姆-源码下载
  • 工作感悟防疫优化措施
  • 保定投递网站建设网上卖东西怎么卖
  • 公司做网站 优帮云网页历史记录在哪里
  • 网站域名最便宜网站做icp备案有哪些好处
  • 广州的网站建设公司哪家好青岛建筑网
  • 重庆网站推广服务咖啡店网站模板
  • 商务网站建设的一般流程是什么电子商务网站建设与维护李建忠下载
  • 网站做外链是什么意思2022双11各大电商平台销售数据
  • 网站开发的技术支持如何在网站后台找到死链接
  • php网站开发门槛高吗自己做个网站好还是做别人会员好
  • 如何使用模板网站建设网页现在做网站还有出路吗
  • 网站改版后seo该怎么做网站更改了资料 百度什么时侯来抓取
  • 济宁专业网站建设装饰设计的变形手法有哪些
  • 国外销售网站部门网站 法规制度 建设情况
  • 和硕网站建设网站备案条件