//// header file
#ifndef _SECTION_
#define _SECTION_
#include <map>
#include "Employee.h"
using namespace std;
class Section {
private:
char* m_sectionName;
Employee* m_director;
Employee* m_viceDirector;
typedef multimap<string,Employee*> m_employees;
public:
Section (char* name);
Section(const Section& section);
~Section();
const char* GetSectionName() const { return m_sectionName; }
const Employee* GetDirector() const { return m_director; } ///////////////check
const Employee* GetViceDirector() const {return m_viceDirector; } ///////////// check
void SetSectionName (const char* newName);
Employee* SetDirector (Employee& newDirector); ///////////// check
Employee* SetViceDirector (Employee& newViceDirector); ///////////// check
void Show() const;
void ShowEmployess() const;
void AddEmployee (Employee newEmployee);
Employee RemoveEmployee (string id);
int GetMinEmployeeWage() const;
int GetMaxEmployeeWage() const;
int AvgMaxEmployeeWage() const;
int GetNumOfEmployee() const;
int GetSumOfExpenses() const;
};
#endif
////// cpp
#include "Section.h"
Section::Section (char* name)
{
SetSectionName(name);
}
Section::Section(const Section& otherSection) {
SetSectionName(otherSection.GetSectionName());
m_director = otherSection.m_director; //////// check
m_viceDirector = otherSection.m_viceDirector; /////// check
}
Section::~Section(){
delete [] m_sectionName;
}
void Section::SetSectionName (const char* newName){
m_sectionName = new char[strlen(newName)+1];
strcpy(m_sectionName, newName);
}
Employee* Section::SetDirector (Employee& newDirector) {
Employee* oldDirector = m_director;
m_director = &newDirector;
return oldDirector;
}
Employee* Section::SetViceDirector (Employee& newViceDirector) {
Employee* oldViceDirector = m_viceDirector;
m_viceDirector = &newViceDirector;
return oldViceDirector;
}
void Section::Show() const {
cout <<"Section :"<<m_sectionName<<endl;
cout <<"Director :"<<m_director<<endl;
cout <<"ViceDirector :"<<m_viceDirector<<endl;
}
/*void Section::ShowEmployess() const {
m_employees::iterator Iterator;
for (Iterator index = m_employees.begin(); index != m_employees.end(); ++index) {
Iterator->
}
}*/
///here the problem !!
void Section::AddEmployee(Employee newEmployee) {
m_employees.insert(make_pair((string)(newEmployee->GetLastName()),newEmployee));
}
ответ
typedef multimap<string,Employee*> m_employees;
Делает m_employees
псевдоним для специализированного типа карты. Вам нужно определить участника. Вместо этого используйте:
typedef multimap<string,Employee*> EmpMap;
EmpMap m_employees;
Ударьте меня на 16 секунд! – Potatoswatter
@Potatoswatter: Lol. И я думал, что я становлюсь медленнее ... ;-) – dirkgently
m_employees не является переменным, это имя типа (от ЬурейеГо в заголовке класса Раздела На той же строку, вы используете NewEmployee, как будто он является указателем на экземпляр Сотрудника, но. на самом деле это экземпляр копии.
- 1. ошибка C2143: отсутствует синтаксическая ошибка: отсутствует ';' до '*'
- 2. ошибка C2143: синтаксическая ошибка: отсутствует ';' до того '*'
- 3. ошибка C2143: синтаксическая ошибка: отсутствует ';' до 'type'
- 4. ошибка C2143: синтаксическая ошибка: отсутствует ')' до 'константа
- 5. C2143: синтаксическая ошибка: отсутствует ';' перед '*'
- 6. ошибка C4430: И ошибка C2143: синтаксическая ошибка: отсутствует ';' до '*'
- 7. ошибка C2143: синтаксическая ошибка: отсутствует ';' before ':'
- 8. ошибка C2143: синтаксическая ошибка: отсутствует ';' Перед «__stdcall„
- 9. ошибка c2143: синтаксическая ошибка: отсутствует ')' before 'type'
- 10. ошибка C2143: синтаксическая ошибка: отсутствует ';' before 'if'
- 11. Ошибка C2143: синтаксическая ошибка: отсутствует ';' перед 'namespace'
- 12. Ошибка Visual C++ C2143: синтаксическая ошибка: отсутствует ';' до 'constant'
- 13. ошибка C2143: синтаксическая ошибка: отсутствует ';' до того '*' (не нашли решение)
- 14. Ошибка компиляции C2143: синтаксическая ошибка: отсутствует ';' до '<
- 15. ошибка C++/cli C2143: синтаксическая ошибка: отсутствует ';' до '.'
- 16. C++: ошибка C2143: синтаксическая ошибка: отсутствует ';' до '<'
- 17. Две синтаксические ошибки: Ошибка C2143 синтаксическая ошибка: отсутствует ';' до того «*»
- 18. Ошибка бросания класса шаблона C2143: синтаксическая ошибка: отсутствует ';' до '<'
- 19. C++ Struct - Ошибка 1 ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '*'
- 20. ошибка C2143 и ошибка C2059 отсутствует ";" до "{"
- 21. afxtempl.h Ошибка 12 ошибка C2143: синтаксическая ошибка: отсутствует ';' before '}'
- 22. Синтаксис C - ошибка C2143: синтаксическая ошибка: отсутствует ')' before '*'
- 23. ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '*' при объявлении указателя
- 24. Ошибка Visual C++ C2143: синтаксическая ошибка: отсутствует ')' перед 'константой'
- 25. VARIADIC шаблон - ошибка C2143: синтаксическая ошибка: отсутствует «» перед «...»
- 26. ошибка C2143: ошибка синтаксиса отсутствует ')' before 'constant'
- 27. синтаксическая ошибка: отсутствует ';' до '*' для всех указателей?
- 28. синтаксическая ошибка: отсутствует ')' before ';'
- 29. ошибка C2143: Синтаксическая ошибка: отсутствие ";" (перед «.»)
- 30. Синтаксическая ошибка: отсутствует '{' before '.'
В следующий раз, пожалуйста, отформатируйте свой код с помощью кнопки '101010' на странице редактирования. Кроме того, большинство людей здесь не хотят смотреть на такое количество кода, которое вы просто сбрасывали здесь. проблема в 10-15 строк, в идеале автономная (т. е. не нужны другие заголовки). Наконец, вы должны найти время, чтобы сформулировать правильный вопрос. Без этого я голосую, чтобы закрыть это как не настоящий вопрос. – sbi
Какая строка является ошибкой? – SoapBox
Вы даже попытались разобраться с проблемой? – Patrick