所以我的代碼編譯正常 - 但它不是做什麼,我希望:(C++超載<<再次
生病嘗試,並解釋這是盡我所能 -
下面是我的代碼,被寫入到磁盤上的文件。
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。現在因爲這不是一個字符串,等我知道我必須高估乘坐< <爲了能夠做到這一點。所以我的班級CProductList盒看起來是這樣的:
class CProductListBox : public CListBox
{
DECLARE_DYNAMIC(CProductListBox)
public:
CProductListBox();
virtual ~CProductListBox();
**friend std::ostream& operator<< (std::ostream& o, const CProductListBox& b)
{
return o;
}**
我又是什麼,我認爲加粗是很重要的 - 這是印刷沒事就輸出文件不幸被我希望它會打印什麼是B中的contenets(在CProductList類) 。
有人能看到一些愚蠢的事我可能會丟失 - 非常感謝,
Colly(愛爾蘭)
你`運營商<<`沒有做任何事情;如果你想將數據寫入流,你需要編寫的代碼將數據寫入到流... – 2011-02-15 16:48:29