C++ において、クラスのコンストラクタでの、クラス変数の初期化方法について質問させて下さい。
例)
class Test1 {
private:
std::string s0;
int n0;
public:
Test1(const char* str, int& n) :
s0{str}, n0{n} {}
void show() {
std::cout << "s0=" << s0.c_str() << " n0=" << n0 << std::endl;
}
};
こんな感じのコンストラクタを書いていたのですが、最近購入した、プログラミング言語C++(第4版)には
class Test2 {
private:
std::string s0;
int n0;
public:
Test2(const char* str, int& n) :
s0(str), n0(n) {}
void show() {
std::cout << "s0=" << s0.c_str() << " n0=" << n0 << std::endl;
}
};
と、()ではなく、{}でのクラス変数の初期化が掲載されていました。
Test2のコードは問題なくコンパイル及び実行できるのですが、初期化する際に、どちらの括弧を使うべきなのか理解できないでいます。
もし、ご存知の方がおられましたら、ご教授お願い致します。