2012-01-18 6 views
0

私はこのコードで何が起こっているのか分かりません。これは私が理解しなければならない作業中のコードからのものです。このC++コードでは何が起こっていますか? (解決演算子の継承?!?)

orange::orange(): 
    hello_short(false), 
    hello_long(false), 
    foo(NULL), 
    foo2(NULL), 
    quiet(false) 
{ 
    res = NULL; 
    good = true; 
} 
+0

コンストラクタの名前の後の変わったコロンについては、[このFAQのエントリ]を参照してください(http://stackoverflow.com/questions/1711990/what-is-this-weird-colon-member-syntax-in-the-constructor )。 – sbi

答えて

5
orange::orange(): 

simpliesは、機能が「オレンジ」(右側)と呼ばれますが、クラスオレンジ(左部分)の機能を定義していると言うと、引数を取りません。関数はクラスと同じ名前が付けられ、値を返さないされているので、それは

あなたのクラスのaconstructorだ残りは初期化リストである:http://www.cprogramming.com/tutorial/initialization-lists-c++.html

1

それは与えられた値(hello_shortを持つクラスのメンバーはfalseになります初期化、hello_longfalsefooNULLなど)、res~NULLとなり、good~trueとなる。

初期化リストは、(すなわち中括弧内のコード)を実行する前に常にで実行されます。

また、構文エラーがあります。foo2(NULL)の後にカンマが必要です。

関連する問題