サイズ 100 の配列を宣言しました。string bin[100];
各配列を として初期化する必要があります""
。それらすべてを1行で初期化するにはどうすればよいですか? のようなものを試しましたが、うまくいきbin[] = "";
ません。どんな助けでも大歓迎です。
デフォルトコンストラクタ
RandomString()
{
input = "";
//bin[] = "";
}
サイズ 100 の配列を宣言しました。string bin[100];
各配列を として初期化する必要があります""
。それらすべてを1行で初期化するにはどうすればよいですか? のようなものを試しましたが、うまくいきbin[] = "";
ません。どんな助けでも大歓迎です。
デフォルトコンストラクタ
RandomString()
{
input = "";
//bin[] = "";
}
特別なことをする必要はありませんstring bin[100];
。std::string
配列の各要素に対して、デフォルトのコンストラクターが呼び出されます。
配列が何らかのクラスのメンバーである場合は、メンバー初期化リストで初期化します。
struct SomeClass
{
std::string bin[100];
SomeClass() : bin() // You can initialize arrays with () in the mem-init list
{
}
};
*技術的には、mem-init リストに追加しなくてもデフォルトのコンストラクターが呼び出されますbin()
が、それは良い習慣です (組み込みの型は初期化されないままになるため)。
C++ では、クラスのメンバーは初期化リストによって初期化されます。たとえば、次の例では、コードに違いがあります。
// First example
struct MyClass
{
int i;
SomeClass() : i(1)
{
}
};
// Second example
struct MyClass
{
int i;
SomeClass()
{
i = 1;
}
};
最初の例でi
は、初期化リストで初期化さ1
れます。2 番目の例で1
は、 がに割り当てられi
ます。上記のコードは、次のように考えることができます。
int i = 1; // First example
int i; // Second example
i = 1;
組み込み型の場合int
、両者の間に大きな違いはありませんが、メンバーが宣言されている場合など、状況によっては上記の違いが非常に重要になる場合がありますconst
。
struct SomeClass
{
const int i;
SomeClass()
{
i = 1; // Error!!
}
};
上記の例では、const メンバーは初期化リストで初期化する必要があります。
あなたの方法で、配列の最初の要素を初期化しました。デフォルトのctorはnull文字列に初期化されています。100 個の要素を初期化したい場合は、それぞれに対して同じことを行うだけです。