LoginSignup
0
0

More than 5 years have passed since last update.

C++ クラスのコンストラクタでのクラス変数の初期化での括弧

Posted at

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のコードは問題なくコンパイル及び実行できるのですが、初期化する際に、どちらの括弧を使うべきなのか理解できないでいます。

もし、ご存知の方がおられましたら、ご教授お願い致します。

0
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0