1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
class Car
{
private:
string reportingMark;
int carNumber;
string kind;
bool loaded;
string destination;
public:
Car() { setUp("", 0, "other", false, "NONE"); }
Car(Car &obj)
{
setUp(obj.reportingMark, obj.carNumber, obj.kind, obj.loaded, obj.destination);
}
Car(string reportingMarkTemp, int carNumberTemp, string kindTemp, bool loadedTemp, string destinationTemp)
{
setUp(reportingMarkTemp, carNumberTemp, kindTemp, loadedTemp, destinationTemp);
}
~Car()
{}
void setUp(string reportingMarkTemp, int carNumberTemp, string kindTemp, bool loadedTemp, string destinationTemp);
void output();
friend bool operator==(const Car &left, const Car &right);
Car & Car::operator=(const Car & carB)
{
setUp(carB.reportingMark, carB.carNumber, carB.kind, carB.loaded, carB.destination);
return *this;
}
};
class StringOfCars
{
private:
Car* CarPtr = new Car[];
static const int ARRAY_MAX_SIZE = 10;
int size;
int top;
public:
StringOfCars()
{
CarPtr = new Car[];
size = 0;
}
StringOfCars(const StringOfCars &obj)
{
if (obj.size > 0)
CarPtr = new Car[size];
else
CarPtr = NULL;
size = obj.size;
for (int i = 0; i < size; i++)
CarPtr[i] = obj.CarPtr[i];
top = obj.top;
}
~StringOfCars()
{
delete [] CarPtr;
}
void push(Car temp)
{
top++;
CarPtr[top] = temp;
}
void pop(Car &temp)
{
temp = CarPtr[top];
top--;
}
void output()
{
if (top == -1)
cout << "NO cars" << endl;
else
{
for (int i = 0; i < top; i++)
{
cout << "Car " << i << endl;
&Car::output;
}
}
}
};
void input(StringOfCars & classTemp)
{
string type;
string reportingMark;
int carNumber;
string kind;
bool loaded;
string destination;
string choice;
ifstream inputFile;
inputFile.open("Lab D.txt");
if (inputFile.fail())
{
cout << "File does not exist." << endl;
system("pause"); //does not compile on Code::Blocks
exit(100); //does not compile on Code::Blocks
}
while (inputFile.peek() != EOF)
{
inputFile >> type;
inputFile >> reportingMark;
inputFile >> carNumber;
inputFile >> kind;
inputFile >> choice;
if (choice == "true")
{
loaded = true;
while (inputFile.peek() == ' ')
{
getline(inputFile, destination);
}
}
if (choice == "false")
{
loaded = false;
while (inputFile.peek() == ' ')
{
getline(inputFile, destination);
}
}
Car temp(reportingMark, carNumber, kind, loaded, destination);
classTemp.push(temp); // WHERE THE COMPILE ERROR OCCURS
}
return;
}
|