Quando provo a creare un oggetto, ottengo un errore LNK2001 in Visual Studio, si tratta di un problema con il costruttore, poiché penso che la modifica del costruttore modifichi l'errore.Errore linker LNK2001
Customer bob("Bob", "25 Bob Lane", "01bob82", "M", "bob/bob/bob");
Questa linea dà questo errore:
Error 1 error LNK2001: unresolved external symbol "public: __thiscall
Customer::Customer(class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >)" ([email protected]@[email protected][email protected][email protected]@[email protected]@V?
[email protected]@[email protected]@[email protected]@[email protected]) D:\Dropbox\Work\C++\C++ Assignment\C++
Assignment\driver.obj
classe Cliente che contiene il costruttore:
#pragma once
#include "l_list.h"
#include "Account.h"
#include <string>
using namespace std;
class Customer
{
private:
l_list<Account> accounts;
string name;
string address;
string telNo;
string sex;
string dob;
public:
Customer(string name, string address, string telNo, string sex, string dob)
{
Customer::name = name;
Customer::address = address;
Customer::telNo = telNo;
Customer::sex = sex;
Customer::dob = dob;
}
void createAccount()
{
cout << "What type of account?";
}
};
Ciò significa in genere che si include la versione errata del file di intestazione o il collegamento con la versione errata della libreria di runtime. I percorsi INCLUDE e LIB dovrebbero puntare alla stessa versione dell'SDK. – Flot2011
Si tratta di un errore del linker. Quindi, sembra che il tuo progetto non includa 'Customer.cpp'. O stai usando 'class Customer' tramite una vecchia (o errata) libreria. – qehgt