** SORUN GİDERME. Yanlışlıkla fazladan bir başlık yaratmışım ve onu sildimden beri işe yaradı. **Sınıflar ve üstbilgileri anlamak için yordam
Bu yüzden dersleri ve başlıkları ve bunları birlikte nasıl çalıştırabileceğimi anlamaya çalışıyorum. Çevrimiçi bir eğiticiyi takip ediyorum ancak kodumda bir şeyler ters gidiyor gibi görünüyor. Sorun şu ki, bu hata main
'u çalıştırmayı denediğimde, bu hatayı verir: Cat::speak()
'un birden çok tanımı ve diğer tüm işlevler.
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
Kodunuzu nasıl derliyorsunuz? ya da daha ziyade, bağlama sırasında class.cpp'yi bir kereden fazla kullanmanız gibi görünüyor. – marcinj
ama 'error: multiple definition' linker problemlerini göstermez .. – marcinj
Kodunuzu denedim ve derleme veya bağlantı hataları olmadı. Nasıl inşa ediyorsun Gnu derleyici ve kod engellerini kullanarak –