C++プログラムで複数の.cppファイルをコンパイルする方法
C++の開発では、プログラムの規模が大きくなるにつれて、コードを複数の.cppファイルに分割して管理するのが一般的です。この記事では、複数の.cppファイルをまとめてコンパイルし、1つの実行ファイルを作成する方法を解説します。
基本的なコンパイル方法
実は、この作業は非常にシンプルです。g++コンパイラに対して、コンパイルしたいファイル名をスペース区切りのリストとして渡すだけで、すべてのファイルを結合して1つの実行可能ファイルにビルドできます。
例えば、abc.cppとxyz.cppという2つのファイルを同時にコンパイルする場合、構文は以下のようになります。
g++ abc.cpp xyz.cpp
コンパイルが完了したら、次のコマンドでプログラムを実行できます。
./a.out
実例:複数ファイルでの面積計算プログラム
ここでは、円と長方形の面積を計算する関数を別ファイルに分けて定義し、それらをメインプログラムから利用する例を見てみましょう。
area.cpp(関数定義ファイル)
float area(float r){
return (3.1415*r*r); // 円の面積
}
float area(float l, float w) {
return (l * w); // 長方形の面積
}このファイルには、オーバーロードされた2つのarea()関数が含まれています。1つ目は半径を引数に取り円の面積を、2つ目は縦と横を引数に取り長方形の面積を計算します。
find_area.cpp(メインプログラム)
#include <iostream>
#include "area.cpp"
using namespace std;
main() {
cout << "半径2.5の円の面積は: " << area(2.5) << endl;
cout << "縦5・横7の長方形の面積は: " << area(5, 7) << endl;
}メインプログラムでは、#includeディレクティブを使ってarea.cppを読み込んでいます。これにより、main()関数内でarea()関数を呼び出せるようになります。
コンパイルと実行結果
$ g++ area.cpp find_area.cpp $ ./a.out Area of circle with radius 2.5 is: 19.6344 Area of rectangle with length and width are 5 and 7 is: 35 $
このように、両方のファイルを指定してg++を実行するだけで、問題なくプログラムがビルドされ、正しい計算結果が出力されます。
補足:より実践的な方法
なお、上記の例では.cppファイルを直接#includeしていますが、実際の大規模開発では推奨されません。一般的には、関数の宣言をヘッダーファイル(.hや.hpp)に記述し、#include "area.h" のように読み込む方法がベストプラクティスとされています。また、プロジェクトが大きくなった場合はMakefileやCMakeなどのビルドツールを活用すると、依存関係の管理やコンパイル作業を効率化できます。
-
C++で十二面体の表面積を計算するプログラム
十二面体とは? 「十二面体(dodecahedron)」という言葉は、ギリシャ語に由来しています。「dodeca」は「12」、「hedron」は「面」を意味します。幾何学における十二面体とは、12枚の平面から構成される3次元の正多面体(プラトンの立体)のことです。 他の立体図形と同様に、十二面体にも以下のような特徴的な性質があります。 20個の頂点 30本の辺 12枚の正五角形の面(五角形は5つの辺を持つ多角形) 以下は十二面体の図です。 問題 一辺の長さが与えられたとき、その十二面体の表面積を求めるプログラムを作成します。ここでいう表面積とは、図形のすべての面が占める空間の総面積のこ
-
C++で楕円の面積を求めるプログラムの作成方法
この記事では、C++を使って楕円(だえん)の面積を求める方法を解説します。楕円にはいくつかの重要な構成要素があり、それぞれの意味を理解しておくと計算の仕組みがより明確になります。楕円の主な構成要素要素説明中心楕円の中心点。2つの焦点を結ぶ線分の中点でもあります。長軸楕円における最も長い直径です。短軸楕円における最も短い直径です。弦楕円上の2点を結ぶ線分のことです。焦点楕円を定義する2つの特別な点。図中に示された2点が該当します。通径焦点を通り、長軸に対して垂直な直線(線分)のことです。楕円の面積の公式楕円の面積は、長半径 a と短半径 b を使って次の式で表されます。面積 = π × a ×