D
dasilva109
Hi guys
I am new to C++ and need urgent help with this part of my code for a
uni coursework I have to submit by Thursday
//ClientData.h
#ifndef CLIENTDATA_H
#define CLIENTDATA_H
#include <string>
using std::string;
class ClientData
{
public:
// default ClientData constructor
inline ClientData( int = 0, string = "", string = "", string = "",
string = "" );
// accessor functions for accountNumber
void setAccountNumber( int );
int getAccountNumber() const;
// accessor functions for clientName
void setClientName( string );
string getClientName() const;
// accessor functions for clientAddress
void setClientAddress( string );
string getClientAddress() const;
//accessor functions for contactName
void setContactName( string );
string getContactName() const;
//accessor functions for clientPhone
void setClientPhone( string );
string getClientPhone() const;
private:
const int accountNumber;
const char telNumber[ 11 ];
const char clientName[ 20 ];
const char clientAddress[ 20 ];
const char contactName[ 15 ];
}; // end class ClientData
#endif
//TheClient.cpp
// This program reads a random access file sequentially, updates
// data previously written to the file, creates data to be placed
// in the file, and deletes data previously in the file.
#include "ClientData.h" // ClientData class definition
#include <iostream>
using std::cerr;
using std::cin;
using std::cout;
using std::endl;
using std::fixed;
using std::ios;
using std::left;
using std::right;
using std::showpoint;
#include <fstream>
using std:fstream;
using std:stream;
using std::fstream;
#include <iomanip>
using std::setw;
using std::setprecision;
//#include <cstdlib>
int enterChoice();
void createTextFile( fstream& );
void updateRecord( fstream& );
void newRecord( fstream& );
void deleteRecord( fstream& );
void outputLine( ostream&, const ClientData & );
int getAccount( const char * const );
enum Choices { PRINT = 1, UPDATE, NEW, DELETE, END };
int main()
{
// open file for reading and writing
fstream inOutCredit( "credit.dat", ios::in | ios:ut );
// exit program if fstream cannot open file
if ( !inOutCredit )
{
cerr << "File could not be opened." << endl;
exit ( 1 );
} // end if
int choice; // store user choice
// enable user to specify action
while ( ( choice = enterChoice() ) != END )
{
switch ( choice )
{
case PRINT: // create text file from record file
createTextFile( inOutCredit );
break;
case UPDATE: // update record
updateRecord( inOutCredit );
break;
case NEW: // create record
newRecord( inOutCredit );
break;
case DELETE: // delete existing record
deleteRecord( inOutCredit );
break;
default: // display error if user does not select valid choice
cerr << "Incorrect choice" << endl;
break;
} // end switch
inOutCredit.clear(); // reset end-of-file indicator
} // end while
return 0;
} // end main
// enable user to input menu choice
int enterChoice()
{
// display available options
cout << "\nEnter your choice" << endl
<< "1 - store a formatted text file of clients" << endl
<< " called \"print.txt\" for printing" << endl
<< "2 - update a client record" << endl
<< "3 - add a new client" << endl
<< "4 - delete a client record" << endl
<< "5 - end program\n? ";
int menuChoice;
cin >> menuChoice; // input menu selection from user
return menuChoice;
} // end function enterChoice
// create formatted text file for printing
void createTextFile( fstream &readFromFile )
{
// create text file
ofstream outPrintFile( "print.txt", ios:ut );
// exit program if ofstream cannot create file
if ( !outPrintFile )
{
cerr << "File could not be created." << endl;
exit( 1 );
} // end if
outPrintFile << left << setw( 10 ) << "Account"<< setw( 10 ) << "Client
Name" << setw( 16 )
<< "Address" << setw( 11 ) << "Contact Name" << right
<< setw( 10 ) << "Telephone No" << endl;
// set file-position pointer to beginning of readFromFile
readFromFile.seekg( 0 );
// read first record from record file
ClientData client;
readFromFile.read( reinterpret_cast< char * >( &client ),
sizeof( ClientData ) );
// copy all records from record file into text file
while ( !readFromFile.eof() )
{
// write single record to text file
if ( client.getAccountNumber() != 0 ) // skip empty records
outputLine( outPrintFile, client );
// read next record from record file
readFromFile.read( reinterpret_cast< char * >( &client ),
sizeof( ClientData ) );
} // end while
} // end function createTextFile
// update balance in record
void updateRecord( fstream &updateFile )
{
// obtain number of account to update
int accountNumber = getAccount( "Enter account to update" );
// move file-position pointer to correct record in file
updateFile.seekg( ( accountNumber - 1 ) * sizeof( ClientData ) );
// read first record from file
ClientData client;
updateFile.read( reinterpret_cast< char * >( &client ),
sizeof( ClientData ) );
// update record
if ( client.getAccountNumber() != 0 )
{
outputLine( cout, client ); // display the record
// move file-position pointer to correct record in file
updateFile.seekp( ( accountNumber - 1 ) * sizeof( ClientData ) );
// write updated record over old record in file
updateFile.write( reinterpret_cast< const char * >( &client ),
sizeof( ClientData ) );
} // end if
else // display error if account does not exist
cerr << "Account #" << accountNumber
<< " has no information." << endl;
} // end function updateRecord
// create and insert record
void newRecord( fstream &insertInFile )
{
// obtain number of account to create
int accountNumber = getAccount( "Enter new account number" );
// move file-position pointer to correct record in file
insertInFile.seekg( ( accountNumber - 1 ) * sizeof( ClientData ) );
// read record from file
ClientData client;
insertInFile.read( reinterpret_cast< char * >( &client ),
sizeof( ClientData ) );
// create record, if record does not previously exist
if ( client.getAccountNumber() == 0 )
{
char telNumber[ 11 ];
char clientName[ 20 ];
char clientAddress[ 40 ];
char contactName[ 15 ];
// user enters last name, first name and balance
cout << "Enter clientname, address, contactname, telnumber\n? ";
cin >> setw( 20 ) >> clientName;
cin >> setw( 40 ) >> clientAddress;
cin >> setw( 15 ) >> contactName;
cin >> setw( 11 ) >> telNumber;
//cin >> balance;
// use values to populate account values
client.setClientName( clientName );
client.setClientAddress( clientAddress);
client.setContactName( contactName );
client.setClientPhone( telNumber );
client.setAccountNumber( accountNumber );
// move file-position pointer to correct record in file
insertInFile.seekp( ( accountNumber - 1 ) * sizeof( ClientData ) );
// insert record in file
insertInFile.write( reinterpret_cast< const char * >( &client ),
sizeof( ClientData ) );
} // end if
else // display error if account already exists
cerr << "Account #" << accountNumber
<< " already contains information." << endl;
} // end function newRecord
// delete an existing record
void deleteRecord( fstream &deleteFromFile )
{
// obtain number of account to delete
int accountNumber = getAccount( "Enter account to delete" );
// move file-position pointer to correct record in file
deleteFromFile.seekg( ( accountNumber - 1 ) * sizeof( ClientData ) );
// read record from file
ClientData client;
deleteFromFile.read( reinterpret_cast< char * >( &client ),
sizeof( ClientData ) );
// delete record, if record exists in file
if ( client.getAccountNumber() != 0 )
{
ClientData blankClient; // create blank record
// move file-position pointer to correct record in file
deleteFromFile.seekp( ( accountNumber - 1 ) *
sizeof( ClientData ) );
// replace existing record with blank record
deleteFromFile.write(
reinterpret_cast< const char * >( &blankClient ),
sizeof( ClientData ) );
cout << "Account #" << accountNumber << " deleted.\n";
} // end if
else // display error if record does not exist
cerr << "Account #" << accountNumber << " is empty.\n";
} // end deleteRecord
// display single record
void outputLine( ostream &output, const ClientData &record )
{
output << left << setw( 10 ) << record.getAccountNumber()
<< setw( 20 ) << record.getClientName()
<< setw( 40 ) << record.getClientAddress()
<< setw( 15 ) << record.getContactName()
<< setw( 11 ) << record.getClientPhone()
<< setw( 10 ) << setprecision( 2 ) << right << fixed
<< showpoint << endl;
} // end function outputLine
// obtain account-number value from user
int getAccount( const char * const prompt )
{
int accountNumber;
// obtain account-number value
do
{
cout << prompt << " (1 - 100): ";
cin >> accountNumber;
} while ( accountNumber < 1 || accountNumber > 100 );
return accountNumber;
} // end function getAccount
Problem:
It compiles with 0 errors & 0 warnings in MSVisual C++ 6, but when you
try and get it to build .exe, it has these errors:
Linking...
Wholesaler.obj : error LNK2005: _main already defined in TheClient.obj
TheClient.obj : error LNK2001: unresolved external symbol "public: int
__thiscall ClientData::getAccountNumber(void)const "
(?getAccountNumber@ClientData@@QBEHXZ)
TheClient.obj : error LNK2001: unresolved external symbol "public:
__thiscall ClientData::ClientData(int,class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >,class std::basic_string<char,struct
std::char_traits<cha
r>,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> >)" (??0ClientData@@QAE@HV?$basic_string@DU
?$char_traits@D@std@@V?$allocator@D@2@@std@@000@Z)
TheClient.obj : error LNK2001: unresolved external symbol "public: void
__thiscall ClientData::setAccountNumber(int)"
(?setAccountNumber@ClientData@@QAEXH@Z)
TheClient.obj : error LNK2001: unresolved external symbol "public: void
__thiscall ClientData::setClientPhone(class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >)"
(?setClientPhone@ClientData@@QAEXV?$basic_string@
DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
TheClient.obj : error LNK2001: unresolved external symbol "public: void
__thiscall ClientData::setContactName(class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >)"
(?setContactName@ClientData@@QAEXV?$basic_string@
DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
TheClient.obj : error LNK2001: unresolved external symbol "public: void
__thiscall ClientData::setClientAddress(class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >)"
(?setClientAddress@ClientData@@QAEXV?$basic_str
ing@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
TheClient.obj : error LNK2001: unresolved external symbol "public: void
__thiscall ClientData::setClientName(class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >)"
(?setClientName@ClientData@@QAEXV?$basic_string@DU
?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
TheClient.obj : error LNK2001: unresolved external symbol "public:
class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > __thiscall ClientData::getClientName(void)const
" (?getClientName@ClientData@@QBE?AV?$basic_s
tring@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
TheClient.obj : error LNK2001: unresolved external symbol "public:
class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > __thiscall
ClientData::getClientAddress(void)const "
(?getClientAddress@ClientData@@QBE?AV?$b
asic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
TheClient.obj : error LNK2001: unresolved external symbol "public:
class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > __thiscall ClientData::getContactName(void)const
" (?getContactName@ClientData@@QBE?AV?$basic
_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
TheClient.obj : error LNK2001: unresolved external symbol "public:
class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > __thiscall ClientData::getClientPhone(void)const
" (?getClientPhone@ClientData@@QBE?AV?$basic
_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
TheRetailer.obj : error LNK2001: unresolved external symbol "public:
__thiscall TheClient::TheClient(char const *,char const *,char const
*)" (??0TheClient@@QAE@PBD00@Z)
TheSupplier.obj : error LNK2001: unresolved external symbol "public:
__thiscall TheClient::TheClient(char const *,char const *,char const
*)" (??0TheClient@@QAE@PBD00@Z)
Debug/WholesalerFinal.exe : fatal error LNK1120: 12 unresolved
externals
Error executing link.exe.
WholesalerFinal.exe - 15 error(s), 0 warning(s)
Scratching my head as to why, and what all that error goobledeegook
means?
Thank you in advance for your help guys.
I am new to C++ and need urgent help with this part of my code for a
uni coursework I have to submit by Thursday
//ClientData.h
#ifndef CLIENTDATA_H
#define CLIENTDATA_H
#include <string>
using std::string;
class ClientData
{
public:
// default ClientData constructor
inline ClientData( int = 0, string = "", string = "", string = "",
string = "" );
// accessor functions for accountNumber
void setAccountNumber( int );
int getAccountNumber() const;
// accessor functions for clientName
void setClientName( string );
string getClientName() const;
// accessor functions for clientAddress
void setClientAddress( string );
string getClientAddress() const;
//accessor functions for contactName
void setContactName( string );
string getContactName() const;
//accessor functions for clientPhone
void setClientPhone( string );
string getClientPhone() const;
private:
const int accountNumber;
const char telNumber[ 11 ];
const char clientName[ 20 ];
const char clientAddress[ 20 ];
const char contactName[ 15 ];
}; // end class ClientData
#endif
//TheClient.cpp
// This program reads a random access file sequentially, updates
// data previously written to the file, creates data to be placed
// in the file, and deletes data previously in the file.
#include "ClientData.h" // ClientData class definition
#include <iostream>
using std::cerr;
using std::cin;
using std::cout;
using std::endl;
using std::fixed;
using std::ios;
using std::left;
using std::right;
using std::showpoint;
#include <fstream>
using std:fstream;
using std:stream;
using std::fstream;
#include <iomanip>
using std::setw;
using std::setprecision;
//#include <cstdlib>
int enterChoice();
void createTextFile( fstream& );
void updateRecord( fstream& );
void newRecord( fstream& );
void deleteRecord( fstream& );
void outputLine( ostream&, const ClientData & );
int getAccount( const char * const );
enum Choices { PRINT = 1, UPDATE, NEW, DELETE, END };
int main()
{
// open file for reading and writing
fstream inOutCredit( "credit.dat", ios::in | ios:ut );
// exit program if fstream cannot open file
if ( !inOutCredit )
{
cerr << "File could not be opened." << endl;
exit ( 1 );
} // end if
int choice; // store user choice
// enable user to specify action
while ( ( choice = enterChoice() ) != END )
{
switch ( choice )
{
case PRINT: // create text file from record file
createTextFile( inOutCredit );
break;
case UPDATE: // update record
updateRecord( inOutCredit );
break;
case NEW: // create record
newRecord( inOutCredit );
break;
case DELETE: // delete existing record
deleteRecord( inOutCredit );
break;
default: // display error if user does not select valid choice
cerr << "Incorrect choice" << endl;
break;
} // end switch
inOutCredit.clear(); // reset end-of-file indicator
} // end while
return 0;
} // end main
// enable user to input menu choice
int enterChoice()
{
// display available options
cout << "\nEnter your choice" << endl
<< "1 - store a formatted text file of clients" << endl
<< " called \"print.txt\" for printing" << endl
<< "2 - update a client record" << endl
<< "3 - add a new client" << endl
<< "4 - delete a client record" << endl
<< "5 - end program\n? ";
int menuChoice;
cin >> menuChoice; // input menu selection from user
return menuChoice;
} // end function enterChoice
// create formatted text file for printing
void createTextFile( fstream &readFromFile )
{
// create text file
ofstream outPrintFile( "print.txt", ios:ut );
// exit program if ofstream cannot create file
if ( !outPrintFile )
{
cerr << "File could not be created." << endl;
exit( 1 );
} // end if
outPrintFile << left << setw( 10 ) << "Account"<< setw( 10 ) << "Client
Name" << setw( 16 )
<< "Address" << setw( 11 ) << "Contact Name" << right
<< setw( 10 ) << "Telephone No" << endl;
// set file-position pointer to beginning of readFromFile
readFromFile.seekg( 0 );
// read first record from record file
ClientData client;
readFromFile.read( reinterpret_cast< char * >( &client ),
sizeof( ClientData ) );
// copy all records from record file into text file
while ( !readFromFile.eof() )
{
// write single record to text file
if ( client.getAccountNumber() != 0 ) // skip empty records
outputLine( outPrintFile, client );
// read next record from record file
readFromFile.read( reinterpret_cast< char * >( &client ),
sizeof( ClientData ) );
} // end while
} // end function createTextFile
// update balance in record
void updateRecord( fstream &updateFile )
{
// obtain number of account to update
int accountNumber = getAccount( "Enter account to update" );
// move file-position pointer to correct record in file
updateFile.seekg( ( accountNumber - 1 ) * sizeof( ClientData ) );
// read first record from file
ClientData client;
updateFile.read( reinterpret_cast< char * >( &client ),
sizeof( ClientData ) );
// update record
if ( client.getAccountNumber() != 0 )
{
outputLine( cout, client ); // display the record
// move file-position pointer to correct record in file
updateFile.seekp( ( accountNumber - 1 ) * sizeof( ClientData ) );
// write updated record over old record in file
updateFile.write( reinterpret_cast< const char * >( &client ),
sizeof( ClientData ) );
} // end if
else // display error if account does not exist
cerr << "Account #" << accountNumber
<< " has no information." << endl;
} // end function updateRecord
// create and insert record
void newRecord( fstream &insertInFile )
{
// obtain number of account to create
int accountNumber = getAccount( "Enter new account number" );
// move file-position pointer to correct record in file
insertInFile.seekg( ( accountNumber - 1 ) * sizeof( ClientData ) );
// read record from file
ClientData client;
insertInFile.read( reinterpret_cast< char * >( &client ),
sizeof( ClientData ) );
// create record, if record does not previously exist
if ( client.getAccountNumber() == 0 )
{
char telNumber[ 11 ];
char clientName[ 20 ];
char clientAddress[ 40 ];
char contactName[ 15 ];
// user enters last name, first name and balance
cout << "Enter clientname, address, contactname, telnumber\n? ";
cin >> setw( 20 ) >> clientName;
cin >> setw( 40 ) >> clientAddress;
cin >> setw( 15 ) >> contactName;
cin >> setw( 11 ) >> telNumber;
//cin >> balance;
// use values to populate account values
client.setClientName( clientName );
client.setClientAddress( clientAddress);
client.setContactName( contactName );
client.setClientPhone( telNumber );
client.setAccountNumber( accountNumber );
// move file-position pointer to correct record in file
insertInFile.seekp( ( accountNumber - 1 ) * sizeof( ClientData ) );
// insert record in file
insertInFile.write( reinterpret_cast< const char * >( &client ),
sizeof( ClientData ) );
} // end if
else // display error if account already exists
cerr << "Account #" << accountNumber
<< " already contains information." << endl;
} // end function newRecord
// delete an existing record
void deleteRecord( fstream &deleteFromFile )
{
// obtain number of account to delete
int accountNumber = getAccount( "Enter account to delete" );
// move file-position pointer to correct record in file
deleteFromFile.seekg( ( accountNumber - 1 ) * sizeof( ClientData ) );
// read record from file
ClientData client;
deleteFromFile.read( reinterpret_cast< char * >( &client ),
sizeof( ClientData ) );
// delete record, if record exists in file
if ( client.getAccountNumber() != 0 )
{
ClientData blankClient; // create blank record
// move file-position pointer to correct record in file
deleteFromFile.seekp( ( accountNumber - 1 ) *
sizeof( ClientData ) );
// replace existing record with blank record
deleteFromFile.write(
reinterpret_cast< const char * >( &blankClient ),
sizeof( ClientData ) );
cout << "Account #" << accountNumber << " deleted.\n";
} // end if
else // display error if record does not exist
cerr << "Account #" << accountNumber << " is empty.\n";
} // end deleteRecord
// display single record
void outputLine( ostream &output, const ClientData &record )
{
output << left << setw( 10 ) << record.getAccountNumber()
<< setw( 20 ) << record.getClientName()
<< setw( 40 ) << record.getClientAddress()
<< setw( 15 ) << record.getContactName()
<< setw( 11 ) << record.getClientPhone()
<< setw( 10 ) << setprecision( 2 ) << right << fixed
<< showpoint << endl;
} // end function outputLine
// obtain account-number value from user
int getAccount( const char * const prompt )
{
int accountNumber;
// obtain account-number value
do
{
cout << prompt << " (1 - 100): ";
cin >> accountNumber;
} while ( accountNumber < 1 || accountNumber > 100 );
return accountNumber;
} // end function getAccount
Problem:
It compiles with 0 errors & 0 warnings in MSVisual C++ 6, but when you
try and get it to build .exe, it has these errors:
Linking...
Wholesaler.obj : error LNK2005: _main already defined in TheClient.obj
TheClient.obj : error LNK2001: unresolved external symbol "public: int
__thiscall ClientData::getAccountNumber(void)const "
(?getAccountNumber@ClientData@@QBEHXZ)
TheClient.obj : error LNK2001: unresolved external symbol "public:
__thiscall ClientData::ClientData(int,class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >,class std::basic_string<char,struct
std::char_traits<cha
r>,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> >)" (??0ClientData@@QAE@HV?$basic_string@DU
?$char_traits@D@std@@V?$allocator@D@2@@std@@000@Z)
TheClient.obj : error LNK2001: unresolved external symbol "public: void
__thiscall ClientData::setAccountNumber(int)"
(?setAccountNumber@ClientData@@QAEXH@Z)
TheClient.obj : error LNK2001: unresolved external symbol "public: void
__thiscall ClientData::setClientPhone(class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >)"
(?setClientPhone@ClientData@@QAEXV?$basic_string@
DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
TheClient.obj : error LNK2001: unresolved external symbol "public: void
__thiscall ClientData::setContactName(class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >)"
(?setContactName@ClientData@@QAEXV?$basic_string@
DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
TheClient.obj : error LNK2001: unresolved external symbol "public: void
__thiscall ClientData::setClientAddress(class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >)"
(?setClientAddress@ClientData@@QAEXV?$basic_str
ing@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
TheClient.obj : error LNK2001: unresolved external symbol "public: void
__thiscall ClientData::setClientName(class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >)"
(?setClientName@ClientData@@QAEXV?$basic_string@DU
?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
TheClient.obj : error LNK2001: unresolved external symbol "public:
class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > __thiscall ClientData::getClientName(void)const
" (?getClientName@ClientData@@QBE?AV?$basic_s
tring@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
TheClient.obj : error LNK2001: unresolved external symbol "public:
class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > __thiscall
ClientData::getClientAddress(void)const "
(?getClientAddress@ClientData@@QBE?AV?$b
asic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
TheClient.obj : error LNK2001: unresolved external symbol "public:
class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > __thiscall ClientData::getContactName(void)const
" (?getContactName@ClientData@@QBE?AV?$basic
_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
TheClient.obj : error LNK2001: unresolved external symbol "public:
class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > __thiscall ClientData::getClientPhone(void)const
" (?getClientPhone@ClientData@@QBE?AV?$basic
_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
TheRetailer.obj : error LNK2001: unresolved external symbol "public:
__thiscall TheClient::TheClient(char const *,char const *,char const
*)" (??0TheClient@@QAE@PBD00@Z)
TheSupplier.obj : error LNK2001: unresolved external symbol "public:
__thiscall TheClient::TheClient(char const *,char const *,char const
*)" (??0TheClient@@QAE@PBD00@Z)
Debug/WholesalerFinal.exe : fatal error LNK1120: 12 unresolved
externals
Error executing link.exe.
WholesalerFinal.exe - 15 error(s), 0 warning(s)
Scratching my head as to why, and what all that error goobledeegook
means?
Thank you in advance for your help guys.