Блок кода ошибки компиляции с++11
Итак, у меня есть эта программа, которая корректно работает с компилятором g++ в CodeBlocks. Однако я хочу изменить эту программу и хочу использовать функцию to_string в C++11. Поэтому я перехожу к настройке - & gt;compiler - & gt;have g++ follow c++11 ISO C++ language standard and compile and run the program. Программа, которая работала, больше не работает. Вместо этого появился файл stat. h, И я получил целый список ошибок "не называет тип".:
_dev_t не называет тип
_ino_t не называет тип
_mode_t не называет тип
...
У меня даже нет _dev_t или _ino_t или любого из этих имен в моей программе. Я удаляю to_string, который только что добавил и скомпилировал, и все равно появляются те же ошибки. Что это за ошибка? Мои коды ниже.
Что я уже пробовал:
Заголовочный файл: контейнер.ч
#ifndef CONTAINER_H #define CONTAINER_H #include<string> #include<vector> using namespace std; class ShippingContainer { public: ShippingContainer(); ShippingContainer(int id); int getId(); void setId(int id); virtual string getManifest(); virtual void setManifest(); virtual void add(); protected: int IdNumber; }; class ManualShippingContainer: public ShippingContainer { public: ManualShippingContainer(); ManualShippingContainer(int id); virtual void setManifest(); virtual string getManifest(); private: string manifest; }; class RFIDShippingContainer: public ShippingContainer { public: RFIDShippingContainer(); RFIDShippingContainer(int id); virtual void add(); virtual string getManifest(); private: vector<string>items; vector<int>quantity; }; #endif //CONTAINTER_H
Реализация класса файлов: Container.cpp
#include "Container.h" #include<iostream> #include<string> using namespace std; ShippingContainer::ShippingContainer():IdNumber(0) { } ShippingContainer::ShippingContainer(int id):IdNumber(id) { } int ShippingContainer::getId() { return IdNumber; } void ShippingContainer::setId(int id) { IdNumber=id; } string ShippingContainer::getManifest() { return ""; } void ShippingContainer::add() { cout<<"do nothing\n"; } void ShippingContainer::setManifest() { cout<<"do nothing\n"; } ManualShippingContainer::ManualShippingContainer():ShippingContainer(),manifest("") { } ManualShippingContainer::ManualShippingContainer(int id):ShippingContainer(id),manifest("") { } void ManualShippingContainer::setManifest() { string str; cout<<"List what is currently inside the container\n"; getline(cin,str); manifest=str; } string ManualShippingContainer::getManifest() { return manifest; } RFIDShippingContainer::RFIDShippingContainer():ShippingContainer() { } RFIDShippingContainer::RFIDShippingContainer(int id):ShippingContainer(id) { } void RFIDShippingContainer::add() { string new_item; getline(cin,new_item); if (items.size()==0) { items.push_back(new_item); quantity.push_back(1); } else { bool found=false; for (unsigned int i=0;i<items.size();i++) { if (items[i]==new_item) { found=true; quantity[i]++; return; } } if (!found) { items.push_back(new_item); quantity.push_back(1); } } } string RFIDShippingContainer::getManifest() { string str=""; for (unsigned int i=0;i<items.size();i++) { char x str=str+"10"+" "+items[i]+'\n'; } return str; }
Основная программа: main.cpp
#include "Container.h" #include<iostream> #include<string> #include<cctype> using namespace std; typedef ShippingContainer* ShippingContainerPtr; int main() { ShippingContainerPtr contain[4]; for (int i=0;i<2;i++) { contain[i]=static_cast<ManualShippingContainer*>(contain[i]); contain[i]=new ManualShippingContainer(i+1); contain[i]->setManifest(); } for (int i=2;i<4;i++) { contain[i]=new RFIDShippingContainer(i+1); char ans; do { contain[i]->add(); cout<<"anything else?\n"; cin>>ans; cin.ignore(1000,'\n'); } while (toupper(ans)!='N'); } for (int i=0;i<4;i++) { cout<<contain[i]->getId()<<" "<<contain[i]->getManifest(); } }