0

私はC++の学習にかなり慣れていません。私は混乱しています。私はクラスで (main.cpp) と (ADTbag.h) を与えられ、クラスの実装 ("ADTbag.cpp") を完了するように言われました。教師が言語の問題を抱えているため、教授から何かを学ぶのは本当に困難でした。私の質問は、2 つの (main.cpp) と (ADTbag.h) を結合することですか? とても混乱しています。この惨めさを処理する方法について、ダミーの説明が必要です。以下は、クラスで与えられたコードです。

#include "ADTbag.h"

#include<string>

#include<iostream>

using namespace std;


void displayBag(ArrayBag<string>& bag)
{
cout << "The bag contains "<< bag.getCurrentSize() << " items:\n";

vector<string> bagItems=bag.toVector();

int numberOfEntries=(int)bagItems.size();

for (int i=0; i<numberOfEntries; i++)
{
    cout <<bagItems[i] << " ";
}
cout << endl;
}

void main() {

ArrayBag<string> bag;

cout << "Testing the array-based bag:" <<endl;

if (bag.isEmpty())

cout << "The initial bag is empty.\n";

displayBag(bag);

string items[]={"one", "two", "three", "four", "five", "one", "two"};

cout << "Add 7 items to the bag:" <<endl;

for (int i=0; i<7; i++)
   {

    bag.add(items[i]);
}
displayBag(bag);
cout << "The string \"one\" occurs " << bag.getFrequencyOf("one") << " times.\n";

cout << "The string \"two\" occurs " << bag.getFrequencyOf("two") << " times.\n";

cout << "The string \"three\" occurs " << bag.getFrequencyOf("three") << " time.\n";

cout << "The string \"seven\" occurs " << bag.getFrequencyOf("seven") << " time.\n";

cout<< "Remove string \"one\" ...\n";

bag.remove("one");

displayBag(bag);

cout<< "Remove string \"two\" ...\n";

bag.remove("two");

displayBag(bag);

if (bag.contains("three"))

    cout << "The bag contains the string \"three\".\n";
else 
    cout << "The bag does NOT contain the string three.\n";

if (bag.contains("seven"))

    cout << "The bag contains the string \"seven\".\n";
else 
    cout << "The bag does NOT contain the string \"seven\".\n";

cout << "Delete all items fron the bag. \n";

bag.clear();

displayBag(bag);

}

また、開始するためにコンパイラに入れると、「#include ADTbag.h」に赤い下線が引かれ、「ソース ファイル「bag.h」を開けません」というエラーが表示されます。ドライバーは以下のとおりです。

#ifndef _ARRAY_BAG
#define _ARRAY_BAG

#include <vector>

const int MAX_LIST=20;  // Maximum capacity of the bag

using namespace std;

template <class ItemType>
class ArrayBag
{
  public:

    ArrayBag();  //default constructor. Create an empty list.

    bool isEmpty() const;  // test if the bag is empty

    int getCurrentSize() const; // get the number of items in the bag

    bool add(const ItemType& newEntry);
    //Insert the newEntry into a bag that is not full.  Place it right after the last item in the array.

    bool remove(const ItemType& anEntry);
    //Remove an item from the bag that matches the newEntry

    int getFrequencyOf (const ItemType& anEntry) const;
    // To count the number of times a given object occurs in a bag.

    bool contains(const ItemType& anEntry) const;
    // To test if the item "anEntry" is in the bag.

    void clear(); // Remove all items from the bag.

    vector <ItemType> toVector() const; 
    // Get the entries that are in a bag and return them within a vector.

  private:

     ItemType items[MAX_LIST];  // Array of bag items

     int size; // current count of bag items
};
#endif
4

1 に答える 1