C
Crucian
Всем добрый день.
Есть следующая проблема:
В классе переопеделен оператор <<.
Что нужно сделать, чтобы в MS Visual C++ в методе Serialize использовать оператор добавления в поток, и не переопеделять метод CObject::Serialize.
Например так:
В таком исполнении компилятор выдает ошибку.
Может кому-то подобная задача попадалась. Заранее благодарю
Есть следующая проблема:
В классе переопеделен оператор <<.
Код:
//-------------------------CData.h--
#include <iomanip>
class CData:public CObject
{
DECLARE_SERIAL(CData);
public:
std::string data;
CData(){data="";}
void display(std::ostream& os);
private:
friend std::ostream& operator<<(std::ostream& os,CData ob)
{
ob.display(os);
return os;
}
};
//-------------------------CData.cpp--
#include "stdafx.h"
#include "CData.h"
void display(std::ostream& os)
{os<<data;
}
IMPLEMENT_SERIAL(CData,CObject,0)
Что нужно сделать, чтобы в MS Visual C++ в методе Serialize использовать оператор добавления в поток, и не переопеделять метод CObject::Serialize.
Например так:
Код:
void CMyDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar<<MyData; //CData MyData
}
else
{}
}
В таком исполнении компилятор выдает ошибку.
Может кому-то подобная задача попадалась. Заранее благодарю