忍者ブログ
なんとなくだらだらと。方向性はまだ決まってない。 当方のプログラムでは、山田巧さん作成のDXライブラリを利用させていただいてます。 本サイト http://homepage2.nifty.com/natupaji/DxLib/index.html DX Library Copyright (C) 2001-2008 Takumi Yamada.
[15] [14] [13] [12] [11] [10] [9] [8] [7] [6] [5]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

C++のプログラムは、クラス毎にヘッダファイルとCPPファイルを作るという。
まあ、設計者的にはどうでもいいらしく放任主義。
そうしなければコンパイル通らないというわけでもない。


深く考えず、サクッと切りわけておく。



「新しい項目の追加」で、「Unit.h」 ファイルを追加する。
Unitクラスの定義と、Unit::~ の関数(インスタンス)をごっそりカット&ペースト。
Unit.hに貼り付けの刑。

で、main.cppのほうに 「Unit.h」 を使いますよと、お知らせしておく。
自分で作ったファイルをインクルードするときは、「<>」の #include <俺ファイル>ではなく
「”ダブルクオーテーション”」の#include ”俺ファイル” を使いましょう。
厳密に言うと違うけど、厳密に言わなければどっちでもいいのはC言語設計者の懐の深さ。

main.cpp

#include <Windows.h> // 表示のウェイトのためだけに。

using namespace std;

#include "Unit.h"



これで一応動くはずだけど、もうひとつ Unit.h のほうにもおまじない。

Unit.h


#pragma once

class Unit
{
string Name;



今は「Unit.h」呼び出す人が「main.cpp」ひとりだけなので大丈夫なんだけど、
これが複数から呼び出されると、「Unitクラスは定義されています」的な、多重定義のエラーを
出してくるようになるのさ。
で、「定義するのは1回だけですよ」って宣言しておくのが、この #pragma once 。
「インクルードガード」って呼ばれてるこのやり方は、VisualStudio(2005以降?)でしかできない。

他の方法は先人たちの知恵。「インクルードガード」で検索して調べてくれ。


ちなみに、こうやってヘッダファイルの中にメソッド書く方法はあまり行儀よくない。
とはいっても、この程度の規模だと見通しのいい書き方のほうがいいってのが俺ジャスティス。

PR


忍者ブログ [PR]
カレンダー
12 2025/01 02
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
フリーエリア
バーコード
ブログ内検索
P R
アクセス解析
カウンター