質問: Visual StudioでC++のプロジェクトを作成し,以下のようにソースコードとヘッダファイルがあるとします.ソースコードmain.cpp内ではmain()関数が実装されており,main.hをインクルードしているとします. ###### [ソースファイル] * main.cpp ###### [ヘッダファイル] * main.h そこで次のようにソースファイルにmain2.cppというソースファイルを新たに追加します.main2.cpp内にもmain()関数が実装されているものとし,main.hをインクルードしているとします. ###### [ソースファイル] * main.cpp * main2.cpp ###### [ヘッダファイル] * main.h このままVisualStudio上でコンパイルするとmain()関数がプロジェクト上に2つ存在するためエラーが発生すると思います.いま私がしたいことは, 1) 最初にまずmain2.cppをコンパイル&実行 2) 次にmain.cppをコンパイル&実行 ということをしたいと考えています.このようなことはVisualStudio内の設定で可能なのでしょうか. 別々のプロジェクトを用意してもよいのですが,main.cppとmain2.cpp内で同じヘッダファイルをインクルードしたいため,できれば1つのプロジェクト内で管理したいと思っています. よろしくお願いいたします.
回答: main 関数はプログラムを実行した場合に最初に呼ばれる関数ですが、このようなものをエントリーポイントと言います。 [C++]エントリーポイントを変える に従って設定すると、クラスのメンバ関数をエントリーポイントにすることができるようです。 違うプロジェクトならともかく、同じプロジェクトに同じ名前の関数を定義することはできませんが、メンバ関数なら話は別です。シグネチャが違うならオーバーロードとして同じクラスに入れることができますし、同じなら別のクラスに分けてください。