我理解了复制构造函数的概念。直到现在我才认为复制构造函数不会有返回值。但我在互联网上看到了一些关于智能指针的代码,它将拷贝构造函数定义为返回一些值。这是对的吗? C ++中的复制构造函数是否具有返回值?
答案 0 :(得分:7)
构造函数(通常)没有返回类型,也没有返回值:
不应为构造函数指定返回类型(甚至无效)。构造函数体中的return语句不应指定返回值。
§12.1[class.ctor]
你可能会想到copy assignment operator,它做了一些与众不同但相关的事情,看起来像是:
T & operator = (const T &);
答案 1 :(得分:1)
构造函数没有返回类型。但是可以有访问说明符。 如果构造函数附加了返回类型...编译器将其视为函数