掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ヘッダファイルについて (ID:67967)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
初心者さん > VisualStudio2005のVC++を現在使ってるのですが、そこで > フォームを追加すると、自動でヘッダファイルが作られ、 > そこにコードが全て書かれるのです。 先に回答されているεπιστημηさんが、まさにこの点を↓にて指摘されていますね。併せて参照してみてください。 http://www.atmarkit.co.jp/fdotnet/special/vcppinvista02/vcppinvista02_01.html ここで便乗質問させてください。 「C言語ベースのライブラリ関数を単純に分類・ラッピングのためだけにクラスを導入した場合、 つまりクラスを(inlineで)マクロ的にのみ使用したい場合でも、クラス実装をヘッダに記載する方法はダメなのか?」 まず、επιστημηさんも指摘されている、 本来「宣言」のみが目的のヘッダに「実装」まで記載すると、「実装のみの変更」時にも そのヘッダを参照する全ソースに再コンパイルを要求することになり、結果ソースの保守性を著しく悪化させる。 という点は一応理解しているつもりです。 で、私の質問ですが、例えば Win32 API がわかりやすいかと思いますが、 一例としてMutex関連のAPI関数をまとめてハンドルを隠蔽化する目的で、Mutexクラスを自作したとします。 class Mutex { protected: m_handle; public: BOOL Release() { return ReleaseMutex( m_handle ); } }; のような感じで…。こうして自作したクラスは ・各メソッドはAPI関数にほとんどそのまま1:1で対応する。 ・実装内容(対応する関数呼び出し)は、まず変更することは無い。 という点から、上記のように 宣言・定義 をまとめたヘッダファイル Mutex.hpp を用意します。 そして、自作アプリからは #include <windows.h> のかわりに #include <Mutex.hpp> のように使用します。 こういう使い方はNGなのでしょうか? 一応επιστημηさんのご回答 > templateとinlineでない限り、ヘッダに実装してはいけません。 のinlineには該当しているかと思うのですが… −以上−
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.