- ベストアンサー
VC++のコーディングについて
- VC++初心者のためのWindowsフォームアプリケーションのコーディング方法
- VC++でのWindowsフォームアプリケーションの作成方法について
- VC++のコーディングにおけるヘッダーファイルとcppファイルの役割と違い
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
> 私の先入観で、cppファイルにコーディングするものだと思っていたのですが、 > VC++のWindowsフォームアプリケーションとは、こういうものでしょうか? VC++が自動的に吐くコードがC++の標準(つか規範)である「宣言はヘッダ/実装はcpp」に反しているだけです。 ヘッダ内に書かなければいけないなんてルールはどこにもありません。 > ヘッダーファイルにコーディングするという感覚が何だか気持ち悪いです。 僕も嫌いです。反吐が出ます。 なのでVC++が吐いたコードの宣言部だけ残し、実装はcppに移しています。
その他の回答 (5)
- zwi
- ベストアンサー率56% (730/1282)
少なくともC++初心者がVC++のフォームアプリ(C++/CLI)を作るのは止めた方が良いと思います。止む終えない事情があれが別ですが。 私は、VC++のフォームアプリはC++の熟練者が.NetFrameWorkを使って容易にウィンドウをアプリを構築するためのものと思っています。 C++とC++/CLIの文法の違いやクラスの何とかも分からない人がやるには難しすぎると思うのですが、prapragmaさんはC++には慣れておられるのでしょうか?
お礼
zwiさんへ ご回答ありがとうございます。 恥ずかしながらC言語しか分からず、C++も初心者です。 いきなりハードルの高いものに飛びついてしまいました(汗) まずは、C++から勉強したいと思います。 的確なアドバイスありがとうございます。
- ICE_FALCON
- ベストアンサー率56% (63/111)
#1です。 > #3 >ヘッダに実装を書くと実装に変更を加えるたびにそれをinclude >しているすべてを再コンパイルしなければならなくなります。 それは知ってるけど、システムのトップ階層(メインフォーム)なら、 includeされることが無いからどっちでもいいと思うけど? GUIアプリケーションのメインフォームは汎用性無いことが多いですし。 ・・・とは言っても実は私も分けています(^ ^; Builder使うこと多いですし。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> 何か具体的ソースコードを一例にご教示いただけると幸いです。 僕はフォームに関わる部分にC++/CLIを使いません。 C#の方が楽ですからから。 C++の方が書きやすい部分をC++/CLIで書き、 C#から呼び出しています。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> 定義と実装を一つのヘッダ".hpp"で管理することがよくあります。 とんでもない、原則「やっちゃダメ」です。 ヘッダに実装を書くと実装に変更を加えるたびにそれをinclude しているすべてを再コンパイルしなければならなくなります。 宣言と実装を分離するのがC++の流儀です。 # 唯一の例外がtemplate
- ICE_FALCON
- ベストアンサー率56% (63/111)
ヘッダ".h"と実装".cpp"に分けた場合、 同じインターフェースなのに二つのファイルを管理するようになります。 C++ではクラス構造が複雑なこともあるので、面倒です。 なので定義と実装を一つのヘッダ".hpp"で管理することがよくあります。 また、テンプレートは定義と実装を一つのヘッダに書かないと、 コンパイルできません。
お礼
ICE FALCONさんへ ご回答ありがとうございます。 テンプレートやクラスについても知識不足なので、勉強してみます。 ありがとうございました。
お礼
epistemeさんへ ご回答ありがとうございます。 的確なアドバイスありがとうございます。 実際に宣言部だけヘッダに残して、実装をcppに移そうと思ったのですが、 どの部分を残して、どの部分を移せば良いのか分かりませんでした。 お時間ある時で構いません。 何か具体的ソースコードを一例にご教示いただけると幸いです。 「フォーム上にボタン1つで、ボタンクリックするとラベルのテキストが変わる」などの 簡単を例にしていただけると助かります。 お手数をお掛けして申し訳ございませんが、よろしくお願いします。