Так что мой код компилируется нормально - однако он не выполняет то, на что я надеялся :(.
Я постараюсь объяснить это как могу -
Ниже мой код, который пишетв файл на диске.
void NewSelectionDlg::PrintInfoFile()
{
**CProductListBox b;**
ofstream outdata;
outdata.open("test.dat", ios::app); // opens the file & writes if not there. ios:app - appends to file
if( !outdata )
{ // file couldn't be opened
cerr << "Error: file could not be opened" << endl;
exit(1);
}
outdata << m_strCompany << endl;
outdata << m_strAppState << endl;
outdata << m_strPurpose << endl;
outdata << m_strChannel << endl;
outdata << m_strProductName << endl;
**outdata << b << endl;**
outdata << endl;
outdata.close();
return;
}
Ключевые строки, которые меня интересуют, выделены жирным шрифтом. Я хочу распечатать класс CProductListBox. Теперь, когда это не строка, и т. д. Я знаю, что мне нужно перезаписатьпокататься на <<, чтобы иметь возможность сделать это. Так что мой класс для CProductListBox выглядит следующим образом: </p>
class CProductListBox : public CListBox
{
DECLARE_DYNAMIC(CProductListBox)
public:
CProductListBox();
virtual ~CProductListBox();
**friend std::ostream& operator<< (std::ostream& o, const CProductListBox& b)
{
return o;
}**
Я снова выделил то, что считаю важным - к сожалению, ничего не печатается в выходном файлеесли бы я надеялся, что он напечатает contenets того, что есть в b (класс CProductList).
Может кто-нибудь увидеть что-то глупое, что я могу пропустить - Большое спасибо,
Колли (Ирландия)