4

我有一个结构,播放器,如下所示:

struct player {
string name;
int rating;
};

我想修改它,以便我用两个参数声明结构:

player(string, int)

它用这些值分配结构的内容。

4

4 回答 4

8

您将使用构造函数,如下所示:

struct player {

  player(const string& pName, const int& pRating) :
    name(pName), rating(pRating) {} // << initialize your members
                                    //    in the initialization list

  string name;
  int rating;
};
于 2012-11-20T05:47:06.760 回答
7

除了给你的类型一个构造函数,因为如图所示它是一个聚合类型,你可以简单地使用聚合初始化:

player p = { "name", 42 };
于 2012-11-20T05:49:02.560 回答
5

虽然(正如已经指出的那样),您可以简单地添加一个构造函数:

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; 
    }
}; 
于 2012-11-20T05:47:21.097 回答
4

你可以为你的player结构声明一个构造函数:

struct player {
    string name;
    int rating;

    player(string n, int r) :
        name(n),
        rating(r)
    {
    }
};

在 C++ 中,类和结构之间的少数区别之一是类成员默认为私有,而结构成员默认为公共。

于 2012-11-20T05:47:35.560 回答