C++值传递需要注意的问题

r囧r小猫 2022-12-21 03:26 178阅读 0赞

C++中的一个小问题

最近在重新开始学习c++,昨天在写代码的过程中发现,在c++中使用值传递和引用传递的一个区别。一般来说,使用值传递是将自定义类型的值传传入函数内部,此时会复制出一份新的对象,而在复制这个新的对象的过程中,会隐式地调用拷贝构造函数。

  1. #include<iostream>
  2. #include<string>
  3. using namespace std;
  4. class Person {
  5. public:
  6. //构造函数
  7. Person(string name)
  8. {
  9. this->name = name;
  10. }
  11. //拷贝构造函数
  12. Person(const Person& p)
  13. {
  14. cout << "使用值传递会隐式地调用拷贝构造函数" << endl;
  15. this->name = p.name;
  16. }
  17. string name;
  18. };
  19. //在这里使用值传递
  20. void test01(Person p)
  21. {
  22. cout << p.name << endl;
  23. }
  24. int main()
  25. {
  26. Person p1("tom");
  27. test01(p1);
  28. system("pause");
  29. return 0;
  30. }

测试结果如下:
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,178人围观)

还没有评论,来说两句吧...

相关阅读

    相关 注意!JAVA中传递

    > LeetCode 113 > > 问题:给你二叉树的根节点root和一个整数目标和targetSum,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 >

    相关 C语言编程需要注意一些问题

    C语言是一种广泛应用于系统级编程和嵌入式开发的高级编程语言。虽然C语言相对简洁和灵活,但在进行C语言编程时,仍然需要注意一些常见的问题,以确保程序的正确性和可靠性。本文将介绍一

    相关 C++传递需要注意问题

    C++中的一个小问题 最近在重新开始学习c++,昨天在写代码的过程中发现,在c++中使用值传递和引用传递的一个区别。一般来说,使用值传递是将自定义类型的值传传入函数内部,