初期化と代入は違うとよく聞きますが、クラスだと違いがよくわかります。たとえば次のクラスをコンパイルするとエラーになります。
class SomeClass { private: const int value; public: SomeClass(int value); }; SomeClass::SomeClass(int value) { this->value = value; // ←注目 }
…というのも、以下のコードがエラーになるのです。
public class SomeClass { private var member:String; // ↓オーバーロードできねぇ! public function set member(member:String):void { this.member = member; } // ↓こっちも! public function get member():String { return this.member; } }
ECMA の新しい仕様は全く把握しておりません。 getter, setter といっても関数の延長なんでしょうか。
クラスのメンバ変数を mMember や member_ のように命名することがあります。これには可読性を向上させる目的の他に、「きっとこうしないと初期化するときコンパイルが通らないんだろうなぁ」という心配があったのですが…