私は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