ファイル分割して記述したコード、例えば下に書いたような
クラスの宣言をSample.hファイルに
その実装をSample.cppファイルに
そしてmain関数をmain.cppファイルに書いた
コードを実行したいのですが、どうすればいいのかわかりません。
vscodeを使っています。
分割されていないファイルを実行するときのように、
c++
1gcc -o program main.cpp
とすればいいのかと思ったのですが、そうではないのですね。
ビルドの処理の中のリンクの部分ができていないということでしょうか。
教えていただけると助かります。
以下、分割して書いたコードの例
c++
1//ファイル名 Sample.h 2#ifndef _SAMPLE_H_ 3#define _SAMPLE_H_ 4 5class Sample{ 6public: 7 int a; // publicなメンバ変数 8private: 9 int b; // privateなメンバ変数 10public: 11 void func1(); 12private: 13 void func2(); 14}; 15 16#endif // _SAMPLE_H_
c++
1//ファイル名 Sample.cpp 2#include "Sample.h" 3#include <iostream> 4 5using namespace std; 6 7void Sample::func1(){ 8 cout << "func1" << endl; 9 a = 1; 10 b = 1; 11 func2(); // func2ないから、func1を呼び出す 12} 13void Sample::func2(){ 14 a = 2; 15 b = 2; 16 cout << "a=" << a << "," << "b=" << b << endl; 17}
c++
1//ファイル名 main.cpp 2#include "Sample.h" 3#include <iostream> 4 5using namespace std; 6 7int main(){ 8 Sample s; 9 s.a = 1; 10 //s.b = 2; 11 s.func1(); 12 //s.func2(); 13}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。