C++

久しぶりに C や C++ のコードを書くときに気をつけるべきこと

C++

最近めっきり C や C++ のコードを書いてなかったので、恐ろしく基本的な所で間違う。 というわけで『久しぶりに C や C++ のコードを書くときに気をつけるべきこと。』 クラスや構造体の定義の最後にセミコロンを付ける this はポインタなのでアロー演算子…

C言語クイズ

C++

カテゴリを C++ としていながら C言語レベルの話でなんですが……。 さてここで問題です。 do 文で continue した時は while の条件はチェックされるでしょうか? 正直、正しく答えられなかった自分がいる。 ていうか、「あれ?」って思った自分がいた。 気に…

なんやねんこのバグは

Visual Studio 2005 のバグだろうか? C#, C++/CLI 混在のプロジェクトで突然 1>.\Controls\HogePane.cpp(5) : fatal error C1093: API の呼び出し 'ImportFile' は '0x80070003' に失敗しました : ErrorMessage: 指定されたパスが見つかりません。 1>Descri…

警告対策

C++

未使用の変数に対する警告対策で、引数とかはマクロで消しちゃったりはしてたんだけど、 なんか戻り値に指定されてて、その後一切使われていないっていう警告が出てた。 左辺値なので存在自体は消せないので template inline void UNUSED_VARIABLE_MARK(cons…

継承ではなく包含でいい理由

今、あるライブラリを弄っていて "あ、こいつの OpenFile() ってファイルっていいながら Stream を返すんだなぁ" と思いながら、今では語りつくされた感の強い、継承よりもコンポジションを使え、という話についてふと考えた。 例えば、File は Stream を継…

MFC の奇妙なクラス階層のおかげで気づいたこと

C++

スーパークラスの protected なメンバは、this の方は触れるが、 そうじゃないインスタンスの場合は触れないっぽい。 class cBase { protected: void DoBaseAction() {} }; class cDerived : public cBase { public: void DoDerivedAction() { this->DoBaseA…

ファニョン2号に…

ファニョン2号ことビョンリョル(やっと名前覚えた--;)が 「演算子オーバーロードってヤツは使ってるのか?」 というので、説明の為に書いた。 class AValueClassExample { private: int m_MemberVar; public: AValueClassExpample() : m_MemberVar(0) { } pu…