我有一个struct,player,如下:
struct player {
string name;
int rating;
};
我想修改它,以便用两个参数声明结构:
player(string, int)
它为结构的内容分配这些值。
答案 0 :(得分:5)
除了给你的类型一个构造函数,因为如图所示它是聚合类型,你可以简单地使用聚合初始化:
player p = { "name", 42 };
答案 1 :(得分:4)
你会使用构造函数,如下所示:
struct player {
player(const string& pName, const int& pRating) :
name(pName), rating(pRating) {} // << initialize your members
// in the initialization list
string name;
int rating;
};
答案 2 :(得分:3)
虽然(正如已经指出的那样),你可以简单地添加一个构造函数:
struct player() {
string name;
int rating;
player(string Name, int Rating) {
name = Name; rating = Rating;
}
};
有什么理由你不想让它成为一个班级吗?
class player() {
public:
string name;
int rating;
player(string Name, int Rating) {
name = Name; rating = Rating;
}
};
答案 3 :(得分:2)
您可以为player
结构声明构造函数:
struct player {
string name;
int rating;
player(string n, int r) :
name(n),
rating(r)
{
}
};
在C ++中,少数differences between classes and structs之一是类成员默认为private,而struct成员默认为public。