所以我有一個類定義爲這樣我的功能應該調用什麼?
template<class ItemType>
class Bag : public BagInterface<ItemType>
{
public:
Bag();
Bag(const ItemType &an_item); // contrusctor thats constructs for a signal item.
int GetCurrentSize() const;
bool IsEmpty() const;
bool Add(const ItemType& new_entry);
bool Remove(const ItemType& an_entry);
void Clear();
bool Contains(const ItemType& an_entry) const;
int GetFrequencyOf(const ItemType& an_entry) const;
vector<ItemType> ToVector() const;
private:
int GetIndexOf(const ItemType& target) const;
static const int kDefaultBagSize_ = 6;
ItemType items_[kDefaultBagSize_]; // array of bag items
int item_count_; // current count of bag items
int max_items_; // max capacity of the bag
和我的教授明確要求我們使用的功能
void DisplayBag(const Bag<ItemType> &a_bag);
顯示在一個袋子內容,問題是,我不知道如何讓它起作用。 例如,在我的INT主我有
Bag<string> grabBag;
grabBag.Add(1);
Display(grabBag);
然後在我的顯示功能我有。
void DisplayBag(const Bag<ItemType> &a_bag)
{
int j = 6;
for(int i = 0; i < j; i++)
{
cout << a_bag[i] << endl;
}
}
我試圖用多種方式搞亂這段代碼,沒有任何工作。我有
void DisplayBag(const Bag<ItemType> &a_bag);
在我的int main()和函數本身之前聲明它寫在類實現的同一頭文件中。
向量函數
template<class ItemType>
vector<ItemType> Bag<ItemType>::ToVector() const
{
vector<ItemType> bag_contents;
for (int i = 0; i < item_count_; i++)
bag_contents.push_back(items_[i]);
return bag_contents;
} // end toVector
這個類的定義似乎是可疑的;爲什麼'Bag'有一種顯示另一個*'Bag'的方法? – 2014-09-26 20:17:04
你確定'DisplayBag'不是'靜態'嗎? – 2014-09-26 20:18:54
@OliverCharlesworth:注意使用「教授」一詞。 – Beta 2014-09-26 20:26:32