[解決済み] Codeblocks c++ 未定義参照エラー、クラスは定義されている
2022-02-24 02:27:05
質問
先日、あるC++のコードがうまく動かないので質問させていただきました。c++でオブジェクトを作成する方法について皆のアドバイスを受けたのですが、未定義の参照エラーが発生します。私は最新のコードブロックのバージョンを使っており、それを使ってコンパイルしています。これは、コンパイル時にいくつかのファイルをリンクしていないことが原因であり、ヘッダーファイルでクラスを定義したが、コードでは定義していないことを意味すると読みましたが、私の理解では(教授の例)、私はオブジェクトを宣言しているので、混乱しています。
ヘッダーファイル MathObject.h
class MathObject{
private:
int num1;
int num2;
public:
int sum();
MathObject(int n, int m);
};
MathObjectファイル MathObject.cpp
#include <iostream>
#include "MathObject.h"
using namespace std;
MathObject :: MathObject(int n, int m){
num1 = n;
num2 = m;
}
int MathObject :: sum(){
return num1+num2;
}
メインファイル
#include <iostream>
#include "MathObject.h"
using namespace std;
int main(int args, char *argv[]){
MathObject *mo = new MathObject(3,4);
int sum = mo -> sum();
MathObject mo2(3,4);
//cout << sum << endl;
return 0;
}
未定義の参照は、MathObjectクラス内のすべての呼び出しに対してです。私は、私が理解できる小さなc++の例を探していました。(構文がjavaとあまりに違うので)。
以前はcで複数のファイルを使おうとするとこの現象が起きていたのですが、これは私のパソコンの問題でしょうか?
解決方法を教えてください。
codeblocksの「Projects"」タブで、プロジェクト名を右クリックし、「Add Files..."」を選択します。
または、アプリケーションのメインメニューの "Project" から "Add files..." を選択することも可能です。
プロジェクトにすべてのソースファイルを追加する場合に使用します。
現在
MathObject.cpp
はそのリストから漏れているので、コンパイルもリンクもされていません。
関連
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】'cout'は型名ではない
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】Enterキーを押して続行する
-
[解決済み】Visual Studioのデバッガーエラー。プログラムを開始できません 指定されたファイルが見つかりません
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】識別子 "string "は未定義?
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較