我们如何将参数化构造函数初始化为字符串的默认值?

时间:2015-10-16 18:27:59

标签: c++ string constructor class-constructors

对于整数,我们可以将其作为

class A{
  int a;
public:
  A(int x = 0){ a = x; }
};

1 个答案:

答案 0 :(得分:4)

很难准确理解你的要求。我您正在询问如何为std::string参数指定默认值。如果是这种情况,你可以这样做:

class A{
  string a;
public:
  A(string x = ""){ a = x; }
};

或:

class A{
  string a;
public:
  A(const string &x = string()){ a = x; }
};

尽管如此,在任何一种情况下,您都应该使用构造函数的成员初始化列表而不是构造函数的主体来初始化a成员:

class A{
  string a;
public:
  A(string x = "") : a(x) { }
};

class A{
  string a;
public:
  A(const string &x = string()) : a(x) { }
};