次のコードでDemo1とDemo2に違いはありますか?"my_constructor:variable(x)"と "this.variable = x"のコンストラクタの違いはありますか?
#include <iostream>
class Base {};
class Demo1 : public Base {
public:
Demo1() : instance_variable(5) {
}
int instance_variable;
};
class Demo2 : public Base {
public:
Demo2() {
this->instance_variable = 5;
}
int instance_variable;
};
int main(int argc, char **argv)
{
Demo1 a;
Demo2 b;
std::cout << "a.instance_variable: " << a.instance_variable << std::endl;
std::cout << "b.instance_variable: " << b.instance_variable << std::endl;
return 0;
}
私は私が今読んでいる本の中で最初の表記を見て、私は2つが等価であるかDEMO1は微妙な違いを持っている場合、私が知っておくべきかわかりません。
私はJava/JavaScriptのバックグラウンドから来ているので、2番目のほうがはるかに読みやすいので、コードの意味を変えずに "Demo1"を "Demo2"に置き換えることができるのは不思議です。
また、「constructor:field(x){}」という表現は何ですか?
私はあなたがこれを読むことをお勧め:http://stackoverflow.com/questions/6822422/c-where-to-initialize-variables-in-constructor – Meraj99
初期化子リストそれだ –
@SauravSahuの感謝を!しかしそれと同等ですか?私はそれを受け入れることができるように答えを投稿してください。 – Dmitry