ankakusu
06/10/2007, 10:24
Merhaba,
ben bir şeyi merak ediyorum.
Mesela attaki gibi bir programım var:
//class1.h dosyası
class class1
{
public:
class1();
virtual ~class1();
private:
};
//class1.cpp
#include "class1.h"
class1::class1()
{
}
class1::~class1()
{
}
//main.cpp
#include <iostream>
using namespace std;
#include "class1.cpp"
int main(int argc, char* argv[])
{
printf("Hello World!\n");
class1 abc;
return 0;
}
eğer dikkat ederseniz main fonksiyonunda
#include "class1.cpp"
dedim. header dosyayı
çağırmak yerine...
ama hata verdi. Bunun nedenini bilen var
mı acaba?
verdiği hata:
Compiling...
chap6.cpp
Linking...
class1.obj : error LNK2005: "public: __thiscall class1::class1(void)" (??0class1@@QAE@XZ) already defined in chap6.obj
class1.obj : error LNK2005: "public: virtual __thiscall class1::~class1(void)" (??1class1@@UAE@XZ) already defined in chap6.obj
Debug/chap6.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
chap6.exe - 3 error(s), 0 warning(s)
ben bir şeyi merak ediyorum.
Mesela attaki gibi bir programım var:
//class1.h dosyası
class class1
{
public:
class1();
virtual ~class1();
private:
};
//class1.cpp
#include "class1.h"
class1::class1()
{
}
class1::~class1()
{
}
//main.cpp
#include <iostream>
using namespace std;
#include "class1.cpp"
int main(int argc, char* argv[])
{
printf("Hello World!\n");
class1 abc;
return 0;
}
eğer dikkat ederseniz main fonksiyonunda
#include "class1.cpp"
dedim. header dosyayı
çağırmak yerine...
ama hata verdi. Bunun nedenini bilen var
mı acaba?
verdiği hata:
Compiling...
chap6.cpp
Linking...
class1.obj : error LNK2005: "public: __thiscall class1::class1(void)" (??0class1@@QAE@XZ) already defined in chap6.obj
class1.obj : error LNK2005: "public: virtual __thiscall class1::~class1(void)" (??1class1@@UAE@XZ) already defined in chap6.obj
Debug/chap6.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
chap6.exe - 3 error(s), 0 warning(s)