次のような構造体プレーヤーがあります。
struct player {
string name;
int rating;
};
2 つの引数で構造体を宣言するように変更したいと思います。
player(string, int)
構造体の内容にそれらの値を割り当てます。
次のような構造体プレーヤーがあります。
struct player {
string name;
int rating;
};
2 つの引数で構造体を宣言するように変更したいと思います。
player(string, int)
構造体の内容にそれらの値を割り当てます。
次のようにコンストラクタを使用します。
struct player {
player(const string& pName, const int& pRating) :
name(pName), rating(pRating) {} // << initialize your members
// in the initialization list
string name;
int rating;
};
型にコンストラクターを与える以外に、示されているようにそれは集約型であるため、単純に集約初期化を使用できます。
player p = { "name", 42 };
(指摘されているように) ただし、コンストラクターを追加するだけです。
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;
}
};
player
構造体のコンストラクターを宣言できます。
struct player {
string name;
int rating;
player(string n, int r) :
name(n),
rating(r)
{
}
};
C++ では、クラスと構造体の数少ない違いの1 つは、クラス メンバーがデフォルトでプライベートに設定されているのに対し、構造体メンバーはデフォルトでパブリックに設定されていることです。