私は最近別の開発者とプロジェクトを取りましたが、彼は彼の参照を初期化する特定の方法を持っています。
class Player
{
private:
Console &console;
Armor &armor1, &armor2;
Debugger &debugger;
sf::RenderWindow &window;
sf::Event &event;
public:
Player(Console &console, Armor &armor1, ...) : console(console), armor1(armor1), ... {};
}
そして、それは私にはまったく問題ありませんが、新しいものを追加するとどうなりますか?私たちのコンストラクターは巨大であり、面倒なので、大規模なプロジェクトがある場合、参照を初期化するより良い方法があるかどうか知りたいと思います。実際に。
参照は再バインドできないため、参照型のメンバーはコンストラクターの初期化リストでのみ初期化できます。ですから、あなたが書いたようにコンストラクターで初期化する必要があります。それが唯一の方法です。
これは2つのポイントを持ち出します:
このメソッドは、C++でプロパティを初期化するための良い方法です。
プロパティの順序は初期化されることに注意してください。
C構造体を使用する場合は、以下を使用できます。
struct Obj
obj={.a="a",.b="b"};
すべてのプロパティを初期化します。
CはC++より優れていると思います。
C++には多くのトラップがあります。