Так что я класс определяется как такойКакова должна моя функция?
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);
Заявленный до моего ИНТ основной(), а сама функция она написана в том же файле заголовка реализации класса.
вектор-функция
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'? –
Вы уверены, что 'DisplayBag' не означает' static'? –
@OliverCharlesworth: Обратите внимание на использование слова «профессор». – Beta