Невозможно передать ссылку из одного класса в другой - PullRequest
0 голосов
/ 22 октября 2011

Я пишу программу на 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;
}

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

1 Ответ

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

Внимательно посмотрите на ваши сообщения об ошибках.

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().

Причиной двух других ошибок компилятора является, вероятно, ложное ; между ) и {' in the definition of SelectionPage :: SelectionPage`. Избавься от этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...