第10講 プログラムソースを複数のファイルに分割して、プログラムをわかりやすくする
第3話 各ファイルのコード内容
では、各ファイルに次のようなコードを書き込んでください。
main.cpp
main.cppのコード
#include"main.h"
int main()
{
  f(); //花子さんの挨拶を担当する社員
  g(); //太郎さんの挨拶を担当する社員
  return 0;
}
(これは全角が入っていませんのでコピペできます。
以下のコードも同様です。)

f.cpp
f.cppのコード
#include"main.h"
void f() {
  printf("太郎さん、こんにちは!\n"); //コンソール画面に表示
}

g.cpp
g.cppのコード
#include"main.h"
void g() {
  printf("花子さん、こんにちは!\n"); //コンソール画面に表示
}

f.h
f.hのコード
void f(); //花子さんの挨拶を担当する社員

g.h
g.hのコード
void g(); //太郎さんの挨拶を担当する社員

main.h
main.hのコード
#include<stdio.h>
#include"f.h"
#include"g.h"


さて、すべてのファイルに上述のコードが入りましたら、
Ctrl+F5をしてみましょう。
001
第10講第1話と同じになりました。

どうして同じ結果になるのでしょうか。
コンピュータは、最初に社長main()の入っているファイルmain.cppを読み込むに行きます。
1行目が#include"main.h"ですから、
main.hの内容
#include<stdio.h>
#include"f.h"
#include"g.h"
が読み込まれます。
さらに、
#include"f.h"によってf.hの内容
void f(); //花子さんの挨拶を担当する社員
が読み込まれ、
コンピュータは社長main()以外に、
社員f()がいることを理解します。
同様にして、
#include"g.h"によってg.hの内容
void g(); //太郎さんの挨拶を担当する社員
が読み込まれ、コンピュータは
もう1人の社員g()がいることをつかみます。
結局、この会社で働く人は、
社長main()と社員f()と社員g()の3人であることをコンピュータは知ることになるのです。

次に、コンピュータは、
int main()
{
  f(); //花子さんの挨拶を担当する社員
  g(); //太郎さんの挨拶を担当する社員
  return 0;
}
を読み込みます。

社員f()の仕事内容を理解するためにコンピュータはf.cppを読み込んで、
f()の仕事内容をつかみます。
同様に、 社員g()の仕事内容を理解するためにコンピュータはg.cppを読み込んで、
g()の仕事内容をつかみます。

以上を通して、会社で働くメンバーと仕事の内容のすべてをコンピュータは理解できますので、
001
が実現するわけです。

コードが巨大になると、社員f()の内容などがどこにあるのか、
わからなくなり、何回もスクロールして探し出さなければなりませんが、
0258
の当てはまっているところをクリックするだけで、
そのコードが
f.cpp
のように出てくるわけです。
あるいは、の当てはまるところをクリックしても同様です。

ゲームに戻る前にもう一つ説明しなければならないことがあります。
分割する前に戻すために、
前話で新たに付け加えたすべてのファイルいったん削除します。
01
それぞれのファイルで右クリックして削除→
02
削除と進んで削除します。
03
すべてが削除されると上のようになります。

そして、コピペで、
main.cppのコードを次のようにしてください。
#include<stdio.h>
void f(); //データ作成社員
void g(); //データ表示社員
int a[3][4];
int main()
{
  f(); //データ作成社員
  g(); //データ表示社員
  return 0;
}
void f() { //データ作成社員
  int i, j;
  for (i = 0; i < 3; i++) {
    for (j = 0; j < 4; j++) {
      a[i][j] = 4 * i + j + 1;
    }
  }
}
void g() { //データ表示社員
  int i, j;
  for (i = 0; i < 3; i++) {
    for (j = 0; j < 4; j++) {
      if (a[i][j] < 10)printf("0%d ", a[i][j]);
      if (a[i][j] >= 10)printf("%d ", a[i][j]);
    }
    printf("\n");
  }
}
(これは全角が入っていませんのでコピペできます。)

これの実行画面は
04
です。

それで、前回と同様にしてプログラムソースを複数のファイルに分割してください。
1人の社員に対して1つのファイルとします。

同手順でやればうまくいくはずですが・・・



第2話へ   第4話へ
a

初心者のための excel 2016 マクロ VBA 入門講義 基
礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための]世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップ