【问题标题】:My constructor is only using default parameters我的构造函数只使用默认参数
【发布时间】:2015-06-17 10:29:33
【问题描述】:

所以我的代码看起来像这样:

class Base
{
public:
    Base(string parameter = "bums")
    {
        //do various things
    }
}

每当我像这样创建此类的新实例时:

Base("poops")

它使用默认参数(在这种情况下为“bums”)而不是我输入的任何参数,我很恐慌。

【问题讨论】:

标签: c++ parameters constructor parameter-passing optional-parameters


【解决方案1】:

也许你可以删除“参数”并编写这样的构造函数

class Base
{   string parameter;
 public:
    Base(string = "bums");
};
Base::Base(string a)
{parameter = a;}

class Base
{   string parameter;
 public:
    Base(string a = "bums")
    {parameter = a;};
};

【讨论】:

  • 为什么您认为这是问题所在?您还应该使用成员初始化列表,Base(const string& a = "bums"): parameter(a) { }
猜你喜欢
  • 2012-06-30
  • 2014-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多