如果我有這樣的代碼打印出來繼承結構列表C++
struct Unit{
int coef; //coefficient
int exp; //exponent
};
class Func: private std::list<Unit>{
public:
Func();
friend std::ostream& operator<<(std::ostream &, Func);
};
如何打印出來? 我試圖用這個概念從這裏:http://www.cplusplus.com/forum/beginner/5074/ 但沒有成功:
ostream& operator<<(ostream &output, Func &pol)
{
list<Unit>::iterator i;
for(i = pol.begin(); i != pol.end(); ++i)
{
Unit test = *i;
output << test.coef << " ";
}
return output;
}
,做我正確初始化呢?
Func::Func()
{
Unit test;
test.coef = 0;
test.exp = 0;
Func::push_back(test);
}
對不起。關於繼承的新內容。雖然這並不難,那是關於我自己創作的課程。
更新的代碼:
struct Unit{
int coef; //coefficient
int exp; //exponent
Unit():coef(0),exp(0){}
};
class Func : public std::list<Unit>{
public:
Func();
friend std::ostream& operator<<(std::ostream &, const Func &);
};
Func::Func()
{
Unit test;
Func::push_back(test);
}
ostream& operator <<(std::ostream &output, const Func& pol)
{
for (list<Unit>::const_iterator i = pol.begin(); i != pol.end(); output << i->coef << " " << i->exp << " ", ++i);
return output;
}
爲什麼你在這裏使用繼承?不要,只需使用代表列表的私有成員變量。另外,向我們展示您的(最小的!!!)代碼,否則我們無法真正幫助您。 – 2013-04-30 18:01:33
顯示你有什麼。這可能是一個比沒有更好的起點。 – 2013-04-30 18:05:37
好的。更新它。 – user2180833 2013-04-30 18:09:07