** PROBLEM BEHOBEN. Es scheint, dass ich aus Versehen einen extra Header erstellt habe, und da ich ihn gelöscht habe, hat es funktioniert. **Versuchen, die Klassen und Header zu verstehen
Also ich versuche, über Klassen und Header zu verstehen und wie ich sie zusammenarbeiten lassen kann. Ich folge einem Online-Tutorial, aber es scheint, dass etwas in meinem Code schief läuft. Das Problem ist, dass, wenn ich versuche, die main
läuft es gibt mir diesen Fehler: mehrere Definition von Cat::speak()
und alle anderen Funktionen.
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
Wie kompilieren Sie Ihren Code? oder besser gesagt, Sie verwenden class.cpp mehr als einmal während des Linkens. – marcinj
aber 'Fehler: Multiple Definition' zeigt Linker Probleme nicht an. – marcinj
Ich habe versucht, Ihren Code und hatte keine Fehler kompilieren oder verknüpfen. Wie bauen Sie? –