c++ - C++中构造函数的返回类型

标签 c++ constructor return return-type

我正在学习 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/

相关文章:

c++ - 获取旋转顶点的当前顶点位置

c++ - 访问无限数组元素?

C++:初始化成员 Vector 值

c - 返回 char 与 int 变量在 C 中如何工作?

java - 为什么这个函数总是返回 0 或 1

c++ - 包括字符串或 string.h

c++ - 返回一个整数数组

C++将带有构造函数的对象插入 map

C++常量结构成员初始化

swift - 为什么不能在函数中直接返回 Void