- 304 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 02:53:37.72 ID:OHt9F1SU.net]
- 例えば、ファイルに書き込む処理があったとする。
ファイルハンドルとして有名な型としては、int型、FILE*型、iostream型、Win32APIのHANDLE型などがあげられる。 これらを派生クラスに閉じ込めて抽象化するよりも、関数名が同じになるオーバーライド関数を作ってテンプレート関数から呼んだ方がはるかに楽。 int WriteBuffer(int fp, const char* buffer); int WriteBuffer(FILE* fp, const char* buffer); int WriteBuffer(ostream& fp, const char* buffer); int WriteBuffer(HANDLE fp, const char* buffer); template<typename FILE_OBJECT> void WriteContent(FILE_OBJECT o) { WriteBuffer(o, "write test1"); WriteBuffer(o, "write test2"); }
|

|