-C++

継承その2

ちょっとややこしいvirtualメソッド。 class Sound { public: virtual ~Sound() { stop(); } virtual void play() { stop(); 再生処理(); } virtual void stop() { 停止処理(); } };class SoundEx : public Sound { public: virtual ~SoundEx() { stop(); } …

継承

protected継承を間違えて覚えてました。・゜・(ノД`)・゜・。 Googleでも間違った情報がたまに…。 クラス定義でも継承でも、デフォルトはprivate属性です。 privateとなったメンバはそれ以降、外部や子はアクセスできなくなります。 (親 -> 子)・public継承 …

その2

クラスの識別子をチェックするような場合。 コピペしてると忘れることがあります(´ω`;) if (foo->id()==0) { ... } // コンパイルok 意図したプログラム if (foo->id==0) { ... } // コンパイルok しかし関数ポインタとして比較される if (foo->id==1) { ...…

その1

#defineでマクロを書くときは気を付けないと危険です。 例えば、 #define hoge(X) if (X==0) {} elsif (X==1) {} hoge(++N); インクリメントされたNではなく「++N」自体が渡される為、 評価される度に値が変わってしまいます。 もう一つ。 #define hoge(X)\ …