C++

ヘッダファイルの依存関係を減らしたり、実装を隠蔽したりするための技法のひとつ。

コピー禁止の場合

ヘッダファイル側(Sample.h )

実装ファイル側(Sample.cpp)

コピー可

C++

【2017年7月5日更新】Android対応について追記

特徴かなり古いライブラリだが、今でも継続的に更新されている
C/C++向けだが、APIは基本的にC言語ベース
描画だけでなく、ファイルI/O、音声再生にも対応 ...

C++

注意点

typedefで指定したクラスの前方宣言をする場合、元のクラスの前方宣言を先にする必要がある。

つまり、通常の名前空間の宣言をくり返す。

# コンパイルしてみる(ideone.com)

C++, JavaScript, プログラミング

基本

各種アニメーションの設定やGUI要素の構築をWYSIWYGで行える無料の公式エディタ。

有償のものと比べると見劣りする部分もあるが、全体として必要十分。

以前は「CocoStudio」という名前でWindo ...

C++

いずれも、関数オブジェクト(のようなもの)を扱えるようにする点においては変わりない。

また、std::functionで受ければ、その後の扱いはほとんど同じ。

std::bind()、std::mem_fn() ...

C++

Pimplイディオムの場合もインターフェイスの場合も、基本は公開用クラスも実装用クラスもそれぞれ継承すればいいだけ。

Pimplイディオム

継承元クラス

継承先クラス

インターフェイス

C++

前回は、委譲を使うシンプルなPimplイディオムを取り上げた。今回は、よりオブジェクト指向(OOP)らしいインターフェイス(抽象クラス)を使った場合。

ヘッダファイル側:インターフェイスの宣言

定義フ

C++

前方宣言をしただけのような不完全クラスのインスタンスをstd::auto_ptrで保持しようとしたとき、上のような場合にはインスタンスが解放されず、メモリリークが生じてしまう。

ポイントは、Incompleteクラスの実際 ...

C++, アプリケーション

【追記】
2011年8月7日:アンチウイルスソフトについて

Visual C++ 2010(VC++ 2010)は基本的にWindows 7を対象としており、他のOSでは不具合というほどではないが、うまく動作しない ...

C++

typedefやテンプレートが複雑にからみ合っていると厄介だが、ひとつひとつベースから前方宣言していくしかない。

なお、STLには<iosfwd>というiostream周りの前方宣言をまとめたヘッダファイルもあ ...