拷贝构造函数

ゝ一纸荒年。 2022-12-17 07:27 285阅读 0赞

特点

  • 也是一种构造函数,其函数名和类名相同,没有返回值类型
  • 只有一个参数,且是同类对象的引用
  • 每个类都必须有一个拷贝构造函数,系统会提供默认构造函数,程序员也可自定义

1.自定义构造函数

一般形式:
类名::类名(const 类名 & 对象名)
{
//拷贝构造函数的函数体
}

  1. class Point{
  2. public:
  3. Point(int a,int b)
  4. {
  5. x = a;
  6. y = b;
  7. }
  8. Point(const Point &p) //拷贝构造函数
  9. {
  10. x = 2 * p.x;
  11. y = 2 * p.y;
  12. }
  13. .
  14. .
  15. .
  16. private:
  17. int x,y;
  18. };

2.默认拷贝函数

  1. # include< iostream>using namespacestd;class Pointl
  2. publ ic:
  3. Point (int a, int b)( x=a;
  4. y=b;
  5. void print()
  6. ( cout«x«<""y«endl;
  7. private:intx, y;);
  8. intmain()
  9. Point P130,40,
  10. Point Dp2(p1);
  11. Point p3=p1;
  12. p1.print () ;
  13. p2 print() ;
  14. p3.print () ;
  15. return 0 ;
  16. 30 40
  17. 30 40
  18. 30 40

3.调用拷贝构造函数的3种情况

普通构造函数是在水箱创建时被调用,而拷贝构造函数在以下三种情况下都会被调用:

  1. 当用类的一个对象去初始化该类的另一个对象时

    Point p2(p1);
    Point p3 = p1l

  2. 当函数的形参是类的对象,在调用函数进行形参和实参结合时

  3. 当函数的返回值是类的对象,在函数调用完毕将返回值(对象)带回函数调用处时。此时将调用拷贝构造函数,将此对象复制给一个临时对象并传到该函数的调用处

发表评论

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

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

相关阅读

    相关 拷贝构造函数

    特点 也是一种构造函数,其函数名和类名相同,没有返回值类型 只有一个参数,且是同类对象的引用 每个类都必须有一个拷贝构造函数,系统会提供默认构造函数,程

    相关 拷贝构造函数

    一.定义: 就类对象而言,相同类型的类对象是通过拷贝构造函数来完成整个复制过程的。 自定义拷贝构造函数: 1. //拷贝构造函数 2. C

    相关 C++拷贝构造函数

    最近在复习C++的考试,对于上机中出现多的是构造函数\\拷贝构造函数\\虚函数等等接触了很多,对它们的理解逐步的加深. . 什么是拷贝构造函数 首