第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で代入してコンソール画面に出力させ
c
ヘッダーファイルb.hで置換変換をして表示させ
初心者
ヘッダーファイルc.hにおいて左右対称変換をして表示させる
基礎
プログラムを考えてください。



第4話へ 第6話へ


戻る

C言語講義第1部へ
VB講義へ
VB講義基礎へ

vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)