拷贝构造函数的参数的类型只能是引用类型

0人阅读 评论(0) 收藏 举报
分类:

正确的拷贝构造的函数体格式如下:

       

Date(Date& d)
{
	if(this!=&d)
	{
	_year=d._year;
	_month=d._month;
	_day=d._day;
	

  (1)首先明确一点:除了传引用不是传值外,其余的传参数都是传值。

  (2)如果传参数是传值的话,对象调用类的拷贝函数,从而造成不断递归调用拷贝构造函数。

         具体的过程见图:


(3)如果传引用的话,就没有了中间不断的重复的拷贝构造过程,一次拷贝构造就解决了。

(4)如果不小心写成了传值拷贝构造,编译器会报错

查看评论

C++拷贝构造函数 参数类型为什么是引用类型 ...

对于class CExample{};拷贝构造函数 写成如下的几种方式CExample(CExample ex){} // 直接编译错误,不允许为CExample类型CExample(CExamp...
  • qq_26437925
  • qq_26437925
  • 2016-09-09 10:11:59
  • 975

拷贝构造函数的类型为什么必须使用引用类型

有的看着理所当然的东西往往被我们忽略其深层的意义,就像c++ 拷贝构造函数的参数为什么必须是引用类型呢,许多初学者都会说,“为了减少一次内存复制呗!”(其实刚开始我也是这样想的),但究竟是不是这样呢?...
  • whoamiyang
  • whoamiyang
  • 2016-03-12 00:05:51
  • 1637

C++拷贝构造函数的参数为什么必须使用引用类型(无限递归)

 我转载这个主要是因为这个风趣幽默哈。。 转自:http://blog.csdn.net/tunsanty/article/details/4264738  在C++中, 构...
  • qq_33850438
  • qq_33850438
  • 2016-04-26 21:38:47
  • 721

拷贝构造函数的参数为什么必须使用引用类型——避免拷贝死循环

#include class CExample { int m_nTest; public: CExample(int x):m_nTest(x) //带参数构造函数 { cout ...
  • u010025211
  • u010025211
  • 2015-08-27 16:00:58
  • 735

方法参数是基本类型和引用类型的区别

1 方法参数是基本类型时,传递的是值。 2 方法参数是引用类型时,传递的是内存地址值public class MethodDemo_3{ public static void main(...
  • q54as520a
  • q54as520a
  • 2017-08-25 22:29:10
  • 179

拷贝构造函数的参数为什么必须是引用?

我们知道类中经常要用到拷贝构造函数,但是在使用的时候有没有想过,为什么他的参数必须是引用? 不是引用不行么?...
  • nwd0729
  • nwd0729
  • 2015-08-25 11:18:23
  • 1423

C#定义泛型方法错误-类型“T”必须是引用类型才能用作泛型类型或方法“System.Data.Linq.Table<TEntity>”中的参数“TEntity”

错误写法:public void GetTableElements() { Table UserTable = m_DataContext.GetTable(); }解决方法:在()后面加上w...
  • lujiachun1
  • lujiachun1
  • 2017-09-12 10:10:36
  • 2045

List<T>.Add(T) 引用类型与值类型

问题原因:     在考试系统中,题型的添加 是由题型的组件构成的。而在题型中,选择题,则应该是由 一个 题型基类(题干)和 四个 单选按钮 组成的。 这个非常容易理解。       每个组件,都...
  • zc474235918
  • zc474235918
  • 2015-02-13 11:45:06
  • 2555

深入解析js中基本数据类型与引用类型,函数参数传递的区别

ECMAScript的数据有两种类型:基本类型值和引用类型值,基本类型指的是简单的数据段,引用类型指的是可能由多个值构成的对象。 Undefined、Null、Boolean、Number和Strin...
  • wkyseo
  • wkyseo
  • 2016-05-23 20:30:04
  • 3501

为什么类的拷贝构造函数的参数必须是引用

   为什么类的拷贝构造函数的参数必须是引用(解决方法来源与CSDN)(1)      我首先想如果传值为什么不可以呢,传值可以完成所有的数据成员的复制工作啊。原因在与这个函数本身是个拷贝构造函数,是...
  • tangaowen
  • tangaowen
  • 2007-07-22 00:21:00
  • 2052
    个人资料
    持之以恒
    等级:
    访问量: 557
    积分: 214
    排名: 34万+
    文章分类
    链接
    csdn.blogmt.com