我有一個小問題,因爲我正在做我的學校項目,我需要的是使用std ::列表創建類似容器女巫。顯示一個std ::列表<type*>
#include <iostream>
#include <list>
template<typename T>
class SomeContainer
{
public:
SomeContainer &operator[](size_t i) ;
void push_back(const T &);
std::list<T> someContent_;
}
class A
{
//it doesn't matter whats inside
}
class B: public A
{}
class C: public A
{}
int main()
{
SomeContainer <A*> something_;
something_.push_back(new B);
cout<< something [0];
}
我做了這樣的事情,有一個問題。我如何顯示A類內容,而不是指向它的指針?當我使用int或字符串類型,一切工作正常,但<A*>
即使我寫
cout << *something[0];
它不會幫助:)
什麼是你的錯誤? cout << some_instance_of_A工作嗎? (即你是否爲它實現了operator <<(ostream)? –
爲什麼你的'operator []'返回容器類型而不是它包含的內容? – Galik
你在生命早期就已經*寫幾個* small *,* separate *程序,讓你完全熟悉a)'std :: list',b)指針和取消引用,c)重載'operator <<'。只有這樣才能建立一些複雜的東西。 –