我正在学习 C++,我遇到了以下代码段:
class X
{
int i;
public:
X(int ii = 0);
void modify();
};
X::X(int ii)
{ i = ii; }
void X::modify()
{ i++; }
X f5()
{ return X(); }
const X f6()
{ return X(); }
void f7(X& x) // Pass by non-const reference
{ x.modify(); }
int main()
{
f5() = X(1);
f5().modify();
}
我特别卡在这个部分-
X f5()
{ return X(); }
这部分代码是否按值返回类型为 x 的对象?构造函数可以返回对象吗?
最佳答案
Does this part of code returns an object of type x by value?
是的,它创建并值初始化一个 X
类型的临时对象(通过使用默认值零调用构造函数)并返回它。
can a constructor can return an object?
不,这没有任何意义。但是像 X()
这样的转换表达式可以。
关于c++ - C++中构造函数的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29941885/