第12講 分割ファイル・分割コンパイル
第5話 ファイルを超える適応範囲をもつ変数
今話の題名を見ればお分かりですね。
答えはありです。
ヘッダーファイルフォルダにd.hファイルを追加し、
次のようなファイル構成にしてください。
ソースファイルm.cpp
#include"d.h"
#include"b.h"
#include"a.h"
#include"c.h"
int main(){
f();
g();
}
ヘッダーファイルa.h
void f(){
a=5;
}
ヘッダーファイルb.h
#include<iostream>
using namespace std;
void g(){
cout<<"グロ張る変数に仕事を奪われた?"<<endl;
}
ヘッダーファイルc.h
void h(){
cout<<a<<endl;
}
ヘッダーファイルd.h
int a;
コンソール画面
今回はうまくいっています。
注意しなければならないのは、インクルードの順番です。
ソースファイルm.cpp
#include"b.h"
#include"a.h"
#include"c.h"
#include"d.h"
int main(){
f();
g();
}
ではうまくいきません。#include"a.h"や#include"c.h"の前にインクルードしなければならないからです。
そこで、ファイル構成を次のように変更しましょう。
ソースファイルm.cpp
#include"d.h"
#include"b.h"
#include"a.h"
#include"c.h"
int main(){
f();
g();
}
ヘッダーファイルa.h
void f(){
a=5;
}
ヘッダーファイルb.h
void g(){
cout<<"グロ張る変数に仕事を奪われた?"<<endl;
}
ヘッダーファイルc.h
void h(){
cout<<a<<endl;
}
ヘッダーファイルd.h
#include<iostream>
using namespace std;
int a;
一番最初にインクルードされるヘッダーファイルで、全ファイルで必要なインクルードファイルをインクルードし、
全ファイルに通用するグローバル変数を宣言しておきます。
では、ヘッダーファイルd.hを
#include<iostream>
using namespace std;
int a[10][10];
に変更し、
ヘッダーファイルa.hで代入してコンソール画面に出力させ
ヘッダーファイルb.hで置換変換をして表示させ
ヘッダーファイルc.hにおいて左右対称変換をして表示させる
プログラムを考えてください。
第4話へ 第6話へ
C言語講義第1部へ
VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)