结构初始化参数

Mic*_*ang 2 c++ constructor struct initialization

我有一个struct,player,如下:

struct player {
string name;
int rating;
};
Run Code Online (Sandbox Code Playgroud)

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

player(string, int)
Run Code Online (Sandbox Code Playgroud)

它为结构的内容分配这些值.

jus*_*tin 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;
};
Run Code Online (Sandbox Code Playgroud)

  • @ildjarn 我为您的答案加了 1,以展示下一个最佳选择 :) (2认同)

egr*_*nin 5

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

struct player() {
    string name;
    int rating;
    player(string Name, int Rating) { 
        name = Name; rating = Rating; 
    }
}; 
Run Code Online (Sandbox Code Playgroud)

你有什么理由不想把它变成一门课吗?

class player() {
public:
    string name;
    int rating;
    player(string Name, int Rating) { 
        name = Name; rating = Rating; 
    }
}; 
Run Code Online (Sandbox Code Playgroud)


ild*_*arn 5

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

player p = { "name", 42 };
Run Code Online (Sandbox Code Playgroud)