复制构造函数在C ++中是否具有返回值

时间:2014-08-14 15:17:39

标签: c++

我理解了复制构造函数的概念。直到现在我才认为复制构造函数不会有返回值。但我在互联网上看到了一些关于智能指针的代码,它将拷贝构造函数定义为返回一些值。这是对的吗? C ++中的复制构造函数是否具有返回值?

2 个答案:

答案 0 :(得分:7)

构造函数(通常)没有返回类型,也没有返回值:

  

不应为构造函数指定返回类型(甚至无效)。构造函数体中的return语句不应指定返回值。

     

§12.1[class.ctor]

你可能会想到copy assignment operator,它做了一些与众不同但相关的事情,看起来像是:

T & operator = (const T &);

答案 1 :(得分:1)

构造函数没有返回类型。但是可以有访问说明符。 如果构造函数附加了返回类型...编译器将其视为函数