方法/构造函数及其返回值

时间:2016-05-26 09:12:41

标签: c++ class object constructor return-value

我是编程新手,我们刚开始学习&#34;课程&#34;。我将向您展示我在互联网上找到的示例代码。我的问题是 - &#34;添加&#34;和&#34; res&#34; 构造函数以及构造函数如何返回值? &#34; X res和X add&#34; 不是int类型的方法,它仍然返回一个值(也不是res的变量),所以我&# 39;我真的很困惑..我在stackoverflow中的一些帖子中看到构造函数无法返回值,但是&#34; X res和X add&#34; < / strong>?

#include <iostream>
using namespace std;

class X {
    int a;
    int b;

public:
    X (int a=7, int b=6) {
        this->a = a;
        this->b = b;
    }

    void print() {
        cout << a << b;
    }

    X add() {
        X res(a+b, a-b);
        return res;
    }

};

int main() {
    X x;
    x.add().print();
    return 0;
}

4 个答案:

答案 0 :(得分:3)

  

&#34;添加&#34;和&#34; res&#34;构造

没有。 add()是类X的成员函数,并返回Xresadd()内的X类型的局部变量。

  

构造函数无法返回值

是的,没错。

答案 1 :(得分:2)

  

是“add”和“res”构造函数,构造函数如何返回值?

add()是一个“普通”类成员函数,它返回一个名为X的新res实例,该实例是使用X(int, int)构造函数初始化的。

答案 2 :(得分:1)

  

什么是“X res和X add”?

X res表示res是X类的对象; add是类X的成员函数的名称,它可以返回类X的对象。

答案 3 :(得分:0)

  

类构造函数是类的特殊成员函数   每当我们创建该类的新对象时执行。

     

构造函数与类具有完全相同的名称,但它没有   有任何返回类型,甚至无效。构造函数可以非常   用于设置某些成员变量的初始值。

所以addprint不是构造函数。只是X (int a=7, int b=6) { this->a = a; this->b = b; }是构造函数。