fix removeState, rm addState, add pop override to fit inheritence
This commit is contained in:
1 file changed
+16
-4
@@ -421,8 +421,12 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Добавление нового государства в начало списка
|
// Добавление нового государства в начало списка
|
||||||
void addState(const State& state) {
|
//void addState(const State& state) {
|
||||||
|
// stateList.push(state);
|
||||||
|
//}
|
||||||
|
virtual Element<State>* push(const State& state) override {
|
||||||
stateList.push(state);
|
stateList.push(state);
|
||||||
|
return stateList.getHead();
|
||||||
}
|
}
|
||||||
friend ostream& operator<<(ostream& os, const StateList& stateList) {
|
friend ostream& operator<<(ostream& os, const StateList& stateList) {
|
||||||
Element<State>* current = stateList.stateList.getHead();
|
Element<State>* current = stateList.stateList.getHead();
|
||||||
@@ -434,6 +438,15 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Удаление государства из начала списка
|
// Удаление государства из начала списка
|
||||||
|
virtual Element<State>* pop() override {
|
||||||
|
try {
|
||||||
|
return new Element<State>(removeState());
|
||||||
|
}
|
||||||
|
catch (const logic_error& e) {
|
||||||
|
cout << e.what() << endl;
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
State removeState() {
|
State removeState() {
|
||||||
Element<State>* element = stateList.pop();
|
Element<State>* element = stateList.pop();
|
||||||
if (element) {
|
if (element) {
|
||||||
@@ -443,7 +456,6 @@ public:
|
|||||||
}
|
}
|
||||||
throw logic_error("State list is empty");
|
throw logic_error("State list is empty");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Поиск государства по названию
|
// Поиск государства по названию
|
||||||
State* findStateByName(const string& name) {
|
State* findStateByName(const string& name) {
|
||||||
Element<State>* current = stateList.getHead();
|
Element<State>* current = stateList.getHead();
|
||||||
@@ -588,8 +600,8 @@ int main() {
|
|||||||
StateList* states = new StateList();
|
StateList* states = new StateList();
|
||||||
|
|
||||||
//for 6.2
|
//for 6.2
|
||||||
states->addState(State("USA", "Washington D.C.", "English", 328000000, 9833510));
|
states->push(State("USA", "Washington D.C.", "English", 328000000, 9833510));
|
||||||
states->addState(State("India", "New Delhi", "Hindi", 1380000000, 3287263));
|
states->push(State("India", "New Delhi", "Hindi", 1380000000, 3287263));
|
||||||
|
|
||||||
// Сохраняем список состояний в файл
|
// Сохраняем список состояний в файл
|
||||||
states->save("states.txt");
|
states->save("states.txt");
|
||||||
|
|||||||
Reference in new issue
Block a user