为什么编译器告诉我<string>向量没有声明?

Why does the compiler tell me vector<string> is not declared?

本文关键字:向量 声明 string 编译器 告诉我 lt 为什么 gt      更新时间:2023-10-16

我这里有一些代码从一个文件中读取,并将它们存储在一个向量中。

我希望将这个向量传递给另一个类。然而,当我试图这样做时,它给了我一个奇怪的错误,我不完全理解。这似乎是在说没有声明vector。

这是一个很长的错误的前几行:

 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>)’

这里是c_home .cpp的第282行-第292行

int HomePage::getInitPoints(){ 
    return initPoints; 
}
vector<string> HomePage::getDutiesList(){
    return dutiesList;
}
vector<string> HomePage::getResourcesList{
    return resourcesList;
}

下面是h_home .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;
};

老实说,我不知道出了什么问题,已经花了好几个小时来沮丧了。有人能帮帮我吗?

您在getDutiesListgetResourcesList的声明中缺少括号:

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

编辑:你也错过了你的。cpp文件中的括号:

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