2014-02-06 5 views
0

Хорошо, привет, ребята, у меня проблемы с моим текущим назначениемКак использовать структуру в другом классе?

У меня есть 2 класса, а именно класс сотрудников и класс gm.

в классе сотрудников, есть структура, которую я использовал, а именно

struct eInfo 
{ 
    char username [80]; 
    char password [80]; 
    int eid; 
};  

однако, в моем классе гм, у меня есть функции, которые полагаются на структуры в классе сотрудников. например,

void addEmployee(fstream&, int, eInfo&); 
void delEmployee(fstream&, int, eInfo&); 
void editEmployee(fstream&, int, eInfo&); 

Как я могу использовать это?

, что я попробовал это в

повторного объявления
struct eInfo 
{ 
    char username [80]; 
    char password [80]; 
    int eid; 
}; 

внутри гм класса. но это не работает. Нет синтаксической ошибки, но когда im использует

fstream afile; afile.open («EmployeeInfo.dat», ios :: in | ios :: out | ios :: binary);

Файл оказывается пустым.

любая идея, как исправить это ??

+0

Почему бы вам не сделать второй класс ** другом ** первого класса? – SoulRayder

+0

Почему вы не берете структуру 'eInfo' из класса? – rhughes

ответ

0

Если структура eInfo объявлена ​​внутриemploye, то вы должны обратиться к нему, как employe::eInfo, когда вы находитесь за пределами employe. Если вы обновите его внутри gm, тогда компилятор будет считать, что employe::eInfo и gm::eInfo - это два разных класса.

0

Объявите eInfo в соответствующем заголовочном файле, а затем включите этот заголовочный файл в свой класс gm. Чтобы создать структуру, используйте этот синтаксис. Имена переменных - это просто наполнители для того, что вы использовали при создании структуры.

eInfo myStruct = {theUsername, thePassword, theEid}; 
Смежные вопросы