c++でクラスを相互に配置するにはどうすればよいですか?
まあ、それがあなたの言いたいことなら、それらをネストしてください:
struct knight
{
struct item
{
char itemName[21];
int value;
};
char name[21];
int xp;
int level;
item cucc[10]; // Notice, that the struct keyword isn't necessary here
};
更新:(実際に質問するつもりだった質問についてもう少しよく考えた後)
それで、私はこのようなことをしたいのですが、クラスではどうすればそれを行うことができますか?
まず、struct
s は C++ のクラスです。しかし、おそらく「このデータをクラスにカプセル化し、それらの間に有向の関連付けを確立するにはどうすればよいですか?」ということでしょう。
この場合、私は次のようなものに行きます:
class item
{
public:
// The constructor to set an item's name and value
item(std::string name, int value);
// Supposing your item's names and values don't change,
// so only getters on the class's interface
std::string get_name() const;
int get_value() const;
private:
// Member variables are private (encapsulated).
std::string itemName;
int value;
};
// Skipping member function definitions. You should provide them.
class knight
{
public:
// The constructor to set a knight's name
knight(std::string name);
// Supposing the name is unchangeable, only getters on the interface
std::string get_name() const;
// ...
// What goes here very much depends on the logic of your application
// ...
private:
std::string name;
int xp;
int level;
std::vector<item> cucc; // If you need reference semantics, consider
// std::vector<std::shared_ptr<item>> instead
};
// Skipping member function definitions. You should provide them.