我们如何将参数化构造函数初始化为字符串的默认构造函数?
How can we initialize a parametrized constructor as default for a string?
对于整数,我们可以这样做
class A{
int a;
public:
A(int x = 0){ a = x; }
};
很难准确理解您的问题。我 认为 你问的是如何为 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) { }
};
对于整数,我们可以这样做
class A{
int a;
public:
A(int x = 0){ a = x; }
};
很难准确理解您的问题。我 认为 你问的是如何为 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) { }
};