【问题标题】:constructor does not run构造函数不运行
【发布时间】:2014-11-27 00:38:29
【问题描述】:

我不明白,因为当您创建“用户”类的对象时,不会打印包含构造函数的消息。

class users
{
public:
    users();
private:
    int i;
};
users::users ()
{
    cout<<"hello world";
}
int main ()
{
    users users1();
    return 0;
}

【问题讨论】:

  • 您没有创建“users 类的对象”。
  • 谷歌“bdfl”。 C++ 需要一个。
  • 您可能还需要输出\n&lt;&lt; endl 才能看到输出
  • @MattMcNabb :标准中的标准流保证在销毁前被刷新。

标签: c++ constructor most-vexing-parse


【解决方案1】:
users users1();

不声明users 类的对象,它声明了一个不带参数的函数并返回users 类的对象。要声明一个对象,请使用:

users users1;

【讨论】:

  • users users1{};
【解决方案2】:
class users
{
public:
    users();
private:
    int i;
};
users::users ()
{
    cout<<"hello world";
}
int main ()
{
    users users1; // either you use this
    users* user2 = new users(); // or you do this
    return 0;
}

这对我来说很好。见here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多