c++ - 无法将引用从一个类传递到另一个类

标签 c++ linux constructor reference

我正在编写一个 C++ 程序,旨在管理公寓中的资源和职责。 该程序旨在在 Linux Shell 中运行。

我创建了一个类调用HomePage供用户登录。我还有另一个名为 SelectionPage 的类。这是用户登录后的菜单。在我的主要函数中,我希望将 HomePage 类的实例获得的一些数据传递给 SelectionPage 类的实例。

我已经被困在这里至少 6 个小时了,有人可以帮忙吗?

错误消息如下:

g++ C_Main.cpp C_HomePage.cpp C_SelectionPage.cpp -o Project
C_Main.cpp: In function ‘int main()’:
C_Main.cpp:17:93: error: no match for call to ‘(std::vector<std::basic_string<char> >) ()’
C_Main.cpp:17:122: error: no match for call to ‘(std::vector<std::basic_string<char> >) ()’
C_HomePage.cpp:290:41: error: no ‘std::vector<std::basic_string<char> > HomePage::getDutiesList()’ member function declared in class ‘HomePage’
C_HomePage.cpp:294:44: error: no ‘std::vector<std::basic_string<char> > HomePage::getResourcesList()’ member function declared in class ‘HomePage’
C_SelectionPage.cpp:9:144: error: declaration of ‘SelectionPage::SelectionPage(std::string, int, std::vector<std::basic_string<char> >, std::vector<std::basic_string<char> >, std::string)’ outside of class is not definition
C_SelectionPage.cpp:9:146: error: expected unqualified-id before ‘{’ token
make: *** [Project] Error 1

这是我的 main()

// Testing Home Page Functionality
#include "H_HomePage.h"
#include "H_SelectionPage.h"

using namespace std;

string initializationFile = "D_initialization.dat";
string flatMemberFile = "D_flatMember.dat";

    int main()
       {
        HomePage frontEnd(initializationFile);             //Create Boundary Object
        system("clear");                                //Clear Terminal Screen
        frontEnd.login(flatMemberFile);

    SelectionPage Menu(frontEnd.getManager(), frontEnd.getInitPoints(), frontEnd.getDutiesList(), frontEnd.getResourcesList(), frontEnd.getLoginName());
      Menu.showManagerMenu();
        return 0;
       }

这是我的 SelectionPage 类的构造函数,如头文件中所述:

...
SelectionPage(string Manager, int Points, vector <string> dutiesList, vector <string> resourceList, string loginName);
...

以下是 SelectionPage 类的构造函数的实现:

    SelectionPage::SelectionPage(string newanager, int points, vector <string> newDutiesList, vector <string> newResourceList, string newLoginName);{
    manager = newManage;
    initPoints = points;
    dutiesList = newDutiesList;
    resourceList = newResourceList;
    loginName = newLoginName;
}

有人可以帮忙吗?我将永远感激不已!

最佳答案

仔细查看您的错误消息。

C_HomePage.cpp:290:41: error: no ‘std::vector<std::basic_string<char> > HomePage::getDutiesList()’ member function declared in class ‘HomePage’
C_HomePage.cpp:294:44: error: no ‘std::vector<std::basic_string<char> > HomePage::getResourcesList()’ member function declared in class ‘HomePage’

您可能对 HomePage::getDutiesList()HomePage::getResourcesList() 声明不正确,或者根本没有声明。如果不查看类声明,很难判断它们到底出了什么问题。这也是 main() 中出现编译器错误的原因。

另外两个编译器错误的原因可能是在 SelectionPage::SelectionPage` 定义中 ){' 之间的虚假 ;。摆脱它。

关于c++ - 无法将引用从一个类传递到另一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7858466/

相关文章:

python - 在构造函数中修改其他对象的状态: design no-no?

c# - 无参数构造函数的第一个参数是什么?

oop - 在 Fortran 中分配和构造多态对象的规范方法是什么?

linux - 使用 awk 和 sed 增加字符串中的数字

c++ - IN6_SET_ADDR_UNSPECIFIED 未在此范围内声明

c++ - 线程或类错误 c++11

c++ - Clang 搜索路径文件

linux - 如何并排打印多个文件的输出

linux - 如何从 linux 中的分隔字符串中找到最小字符串?

c++ - 实现哈希表