クラスのヘッダー ファイルを作成し、main.cpp に "theclassname.h" を #include しましたが、コンパイルしようとすると "ClassName::TheConstructor(bool, int*, std::basic_string, std: :アロケータ >)""
Classname.cpp ファイル内にコンストラクターと "ClassName::start" という関数をコーディングしましたが、何らかの理由で、この開始関数と cpp ファイルにもコーディングされているデストラクタに未定義の参照の問題が発生しています。ヘッダー ファイル内にコード化された関数を呼び出すたびにこのエラーは発生しませんが、.cpp ファイルでコード化された関数を呼び出すたびにこれがトリガーされます。
これに関する多くの投稿を見てきましたが、正しいパラメーターと戻り値の型で適切にコーディングし、関数名がヘッダー ファイルで定義されているものと同じであることを確認しました。私はそれを10回以上チェックしたので、何かのスペルミス以外にこれを引き起こしている可能性がある.
ありがとう
#ifndef THECLASSNAME_H
#define THECLASSNAME_H
#include <iostream>
class TheClassName {
public:
TheClassName(bool theBool=true, int *theArray=0,
std::string message="-1");
~TheClassName();
void start();
void setBool(bool theBool) {aBool=theBool;}
bool getBool() {return aBool;}
void setMessage(std::string message) {mssg=message;}
std::string getMessage() {return mssg;}
std::string getHello() {return hello;}
private:
int *anArray;
bool aBool;
std::string mssg;
std::string hello;
void aFunction1(bool);
void aFunction2();
void aFunction3();
void aFunction4();
};
#endif
申し訳ありませんが、誰もが修正しました!私のメイクファイルで私がした
exec1: main.o classname.o
g++ -o exec1 main.o
それ以外の
exec1: main.o classname.o
g++ -o exec1 main.o classname.o
どうもありがとうございました!