【问题标题】:methods/constructors and their return values方法/构造函数及其返回值
【发布时间】:2016-09-24 04:44:42
【问题描述】:

我是编程新手,我们刚刚开始学习“课程”。我将向您展示我在互联网上找到的示例代码。我的问题是 - 是 "add" 和 "res" 构造函数,构造函数如何返回值? “X res 和 X add” 不是 int 类型的方法,它仍然返回一个值(res 也没有变量),所以我真的很困惑.. 我见过在 stackoverflow 的一些帖子中,构造函数无法返回值,但是 "X res and X add" 是什么?

#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;
}

【问题讨论】:

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


    【解决方案1】:

    “add”和“res”是构造函数吗?

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

    构造函数不能返回值

    是的,没错。

    【讨论】:

    • 我想我明白了.. 最后我猜答案类似于 - x.print(); 其中x 保存值 13 和 1 并且使用 print(); 方法我们只是打印出来?
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      什么是“X res and X add”?

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

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2012-08-07
          • 2021-01-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多