Saya mengalami masalah ini ketika saya mencoba mengkompilasi kode saya, saya pikir itu mungkin disebabkan oleh file header yang menyertakan satu sama lain. Namun sejauh yang saya tahu, saya tidak menemukan masalah apa pun dengan file header saya
Kesalahan LNK1169 satu atau lebih simbol yang ditentukan perkalian ditemukan Pekerjaan Rumah2 D:\05Pengembangan\04 C_C++\C\DS Alg class\Homework2\Debug\Homework2.exe 1
juga, ada kesalahan yang memberi tahu saya bahwa fungsi Assert() telah dideklarasikan di tempat lain.
Kesalahan LNK2005 "void __cdecl Assert(bool,class std::basic_string,class std::allocator >)" (?Assert@@YAX_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@ 2@@std@@@Z) sudah ditentukan di DataBase.obj Homework2 D:\05Development\04 C_C++\C\DS Alg class\Homework2\Homework2\dbTest.obj 1
inilah struktur kode saya:
fungsi
void Assert(bool val, string s)
{
if (!val)
{
cout << "Assertion Failed!!: " << s << endl;
exit(-1);
}
}
ada di Constants.h
Daftar kelas virtual mencakup Constants.h
#pragma once // List.h
#include "Constants.h"
Daftar array menyertakan kelas Daftar, di kelas AList memanggil fungsi Assert
#pragma once //AList.h
#include "List.h"
...
Assert((pos >= 0) && (pos < listSize), "Position out of range");
Di kelas DataBase saya membuat anggota AList
private:
AList<CData> set;
headernya terlihat seperti ini: #pragma sekali #include "AList.h" #include "CData.h"
dan CData.h terlihat seperti ini:
#pragma once
class CData
{
private:
std::string m_name;
int m_x;
int m_y;
public:
CData(std::string str = "null", int x = 0, int y = 0) : m_name(str), m_x(x), m_y(y) {}
// Helper functions
const std::string& GetName() const { return this->m_name; }
const int& GetX() const { return this->m_x; }
const int& GetY() const { return this->m_y; }
};
Assert
tidak boleh ada diConstants.h
, hanya deklarasinya saja yang harus ada (void Assert(bool val, string s);
) - person Jabberwocky   schedule 15.10.2018