在默认构造函数中初始化向量变量?
Initialization of vector variables in default constructor?
如何在构造函数中将私有字符串变量 name 和 age 初始化为 "John" 和 30?
class Name_pairs
{
public:
Name_pairs();
Name_pairs(string name_cons, double age_cons);
vector <string> read_names() {return name;};
vector <double> read_ages() {return age;};
void print();
void sort();
private:
vector <string> name;
vector <double> age;
};
Name_pairs::Name_pairs()
: name(), age()
{}
通常:private_variable(默认值)不起作用。不好意思,菜鸟问题,第一次遇到类.
像这样:
Name_pairs::Name_pairs()
: name( 1, "John" ), age( 1, 30 )
{}
您尝试用字符串初始化矢量名称。这是两种不同的数据类型。正如 billz 已经建议的那样,您不需要 name_pair 的字符串向量(或者您的 class 命名对 billz 和我来说都是误导)。
如果将名称声明为字符串,则可以再次使用构造函数的初始化列表。
...
private:
string name;
double age;
};
Name_pairs::Name_pairs(string name_cons, double age_cons)
: name(name_cons), age(age_cons)
...
当您刚刚将 class 命名为不明确并且您确实需要在 class 中使用字符串向量并且您只获得字符串作为构造函数参数时,您必须将这些字符串添加到构造函数主体到您的向量中。
Name_pairs::Name_pairs(string name_cons, double age_cons)
{
name.push_back(name_cons);
age.push_back(age_cons);
}
如何在构造函数中将私有字符串变量 name 和 age 初始化为 "John" 和 30?
class Name_pairs
{
public:
Name_pairs();
Name_pairs(string name_cons, double age_cons);
vector <string> read_names() {return name;};
vector <double> read_ages() {return age;};
void print();
void sort();
private:
vector <string> name;
vector <double> age;
};
Name_pairs::Name_pairs()
: name(), age()
{}
通常:private_variable(默认值)不起作用。不好意思,菜鸟问题,第一次遇到类.
像这样:
Name_pairs::Name_pairs()
: name( 1, "John" ), age( 1, 30 )
{}
您尝试用字符串初始化矢量名称。这是两种不同的数据类型。正如 billz 已经建议的那样,您不需要 name_pair 的字符串向量(或者您的 class 命名对 billz 和我来说都是误导)。 如果将名称声明为字符串,则可以再次使用构造函数的初始化列表。
...
private:
string name;
double age;
};
Name_pairs::Name_pairs(string name_cons, double age_cons)
: name(name_cons), age(age_cons)
...
当您刚刚将 class 命名为不明确并且您确实需要在 class 中使用字符串向量并且您只获得字符串作为构造函数参数时,您必须将这些字符串添加到构造函数主体到您的向量中。
Name_pairs::Name_pairs(string name_cons, double age_cons)
{
name.push_back(name_cons);
age.push_back(age_cons);
}