Почему компилятор сообщает мне, что вектор <string>не объявлен? - PullRequest
0 голосов
/ 22 октября 2011

У меня есть некоторый код, который читает из файла и сохраняет их в векторе.

Я хочу передать этот вектор в другой класс.Однако, когда я пытаюсь это сделать, это вызывает у меня странную ошибку, которую я не до конца понимаю.Кажется, говорят, что вектор не объявлен.

Вот первые несколько строк очень длинной ошибки:

 g++ C_Main.cpp C_HomePage.cpp C_SelectionPage.cpp -o Project
     C_HomePage.cpp:286:40: error: no ‘std::vector<std::basic_string<char> > HomePage::getDutiesList()’ member function declared in class ‘HomePage’
    C_HomePage.cpp:290:26: error: ‘std::vector<std::basic_string<char> > HomePage::getResourcesList’ is not a static member of ‘class HomePage’
    C_HomePage.cpp:290:26: warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x
    C_HomePage.cpp:291:2: error: expected primary-expression before ‘return’
    C_HomePage.cpp:291:2: error: expected ‘}’ before ‘return’
    C_HomePage.cpp:291:2: error: in C++98 ‘HomePage::getResourcesList’ must be initialized by constructor, not by ‘{...}’
    C_HomePage.cpp:291:2: error: no matching function for call to ‘std::vector<std::basic_string<char> >::vector(<brace-enclosed initializer list>)’

Вотстрока 282 - строка 292 C_HomePage.cpp

int HomePage::getInitPoints(){ 
    return initPoints; 
}

vector<string> HomePage::getDutiesList(){
    return dutiesList;
}

vector<string> HomePage::getResourcesList{
    return resourcesList;
}

Вот соответствующие объявления для этих методов в H_HomePage.h

class HomePage {
        //These values will be the property of the flat
        //They are set before the login screen is displayed
        string manager;
        int initPoints;
        vector<string> dutiesList;
        vector<string> resourcesList;
        vector<FlatMember> flatMemberList;
        string loginName;


        public:

            HomePage(string);

            void login(string);
            string receivePassword();

            void importFlatMembers(string);
            void exportFlatMembers(string);         

            string getLoginName();
            string getManager();
            int getInitPoints();
            vector<string> getDutiesList;
            vector<string> getResourcesList;

};

Я, честно говоряне знает, что не так, и провел много часов, расстраиваясь из-за этого.Может ли кто-нибудь помочь, пожалуйста?

1 Ответ

1 голос
/ 22 октября 2011

Вам не хватает скобок в объявлениях getDutiesList и getResourcesList:

vector<string> getDutiesList();
vector<string> getResourcesList();

РЕДАКТИРОВАТЬ: Вам также не хватает скобок в файле .cpp:

vector<string> HomePage::getResourcesList(){
    return resourcesList;
}
...