Я работаю над присваиванием C ++ для класса, который хочет, чтобы я перегрузил оператор ">>".Я сталкиваюсь с ошибками, связывающими и в Visual Studio 2005 и в Xcode 3.2.2.Код C ++ разделен на несколько файлов.Прототипы хранятся в файле overload.h, реализации хранятся в файле overload.cpp, а main()
- в файле overloadtester.cpp (хотя я еще не смог поместить что-либо, связанное с этим новым перегруженным оператором, в main из-за ошибкиниже приведен код, который я добавил до того, как начал получать ошибки (перечислены ниже)
// overload.h
// Class Name OverloadClass
#ifndef _OverloadClass_H
#define _OverloadClass_H
#include < string >
using namespace std ;
class OverloadClass
{
public:
// Constructors and methods
private:
x_;
y_;
};
istream& operator>> (istream& in, OverloadClass &p);
#endif
// overload.cpp
#include < iostream >
#include < string >
#include < sstream >
#include < istream >
extern "C"
{
#include "DUPoint.h"
}
using namespace std ;
void OverloadClass::input()
{
char leftParen;
char comma ;
cin >> leftParen >> x_ >> comma;
char rightParen;
cin >> y_ >> rightParen;
}
// Constructor and method implementations
istream& operator>> (istream& in, OverloadClass &p)
{
p.input();
return in;
}
Ошибка, которую я получаю в Xcode:
Link ./OverloadDirectory
Undefined symbols: "operator>>(std:basic_istream >&, OverloadClass&)" referenced from: _main in overloadtester.o
ld: symbol(s) not found collect2: ld returned 1 exit status
У меня нет доступа ккомпьютер с VS в этот самый момент, надеюсь, когда я это сделаю, я смогу опубликовать ошибку, полученную при запуске кода в этой IDE.
Отредактировано в ответ на запрос @ Mark для получения более подробной информации
Отредактировано в ответна запрос @ sbi для получения дополнительной информации о input ()