**問題が解決しました。私は間違って余分なヘッダーを作成していたようだが、私は彼を削除したので、それはうまくいった。 **クラスとヘッダーを理解しようとしています
私はクラスとヘッダーについて理解しようとしています。どのように連携させることができますか。 私はオンラインチュートリアルに従っていますが、私のコードで何か問題が起きているようです。 問題は、main
を実行しようとすると、 複数定義Cat::speak()
と他のすべての機能がこのエラーになります。
main.cppに
#include <iostream>
#include "class.h"
using namespace std;
int main()
{
Cat jim;
jim.makehappy();
jim.speak();
Cat george;
george.makesad();
george.speak();
return 0;
}
class.cpp
#include <iostream>
#include "class.h"
using namespace std;
void Cat::speak()
{
if (happy)
{
cout << "meoww" << endl;
}
else
{
cout << "sssss" << endl;
}
}
void Cat::makehappy()
{
happy = true;
}
void Cat::makesad()
{
happy = false;
}
class.h
#ifndef CLASS_H_INCLUDED
#define CLASS_H_INCLUDED
class Cat
{
private:
bool happy;
public:
void makehappy();
void makesad();
void speak();
};
#endif // CLASS_H_INCLUDED
コードをどのようにコンパイルしていますか?むしろリンク中にclass.cppを2回以上使用するように見えます。 – marcinj
ですが、 'error:multiple definition'はリンカーの問題を示していません。 – marcinj
あなたのコードを試してみましたが、コンパイルやリンクのエラーはありませんでした。どうやって造っているの? –