【问题标题】:Can we declare an object of a class inside a function of the same class in C++?我们可以在 C++ 中同一类的函数中声明一个类的对象吗?
【发布时间】:2018-12-03 01:27:06
【问题描述】:

我必须在同一个类的函数中声明一个类的对象,但我不确定这是否可行,我无法执行我的程序并检查,因为它还没有准备好。

我必须将该对象用于函数内的多个不同任务。

【问题讨论】:

  • 是的。您应该在您的问题中添加信息,包括您当前的minimal reproducible example,以及您正在尝试执行的操作以及您无法执行程序的原因(例如,它是否无法编译或在运行时崩溃)
  • 程序还没有准备好,所以不能执行。
  • 示例问题是。我有一个类“Train”,它有一个成员函数“addtrain()”。我想知道我是否可以在“addtrain()”中声明一个“Train”对象?
  • 是的,你可以。但是,当我们可以看到您的代码时,会更容易理解您的问题。因此,请编辑您的帖子并将其粘贴到此处
  • 你不应该在没有测试的情况下编写大量代码。除非在现有的大型代码库中进行大量更改,否则您应该能够在几分钟内解决阻止代码执行的问题。如果没有,那么您可能试图一次编写太多代码。 另外,对于这样的问题,可以创建一个程序来测试它,反正不到 2 分钟

标签: c++ function class object


【解决方案1】:

您可以在成员函数中实例化、修改和返回同一类的对象,无论是否为静态。这是一些荒谬但有效的代码,向您展示了一些可能性。

class Train {
public:
    int a;

    Train(int a) : a(a) {}

    static Train addTrain() {
        Train t = Train(4);
        t.a = 2;
        return t;
    }

    void add(int num) {
        Train t = Train(num);
        this->a += t.a;
    }
}

【讨论】:

  • 非常感谢您的宝贵时间,这确实很有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-29
  • 2015-01-11
  • 2013-09-20
  • 2020-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多