C++ 错误:C2143:语法错误:缺少“;”在“.”之前
m_employees不是一个变量,它是节类标题中typedef的类型名称。在同一行中,您正在使用newEmployee,就像它是指向员工实例的指针一样,但实际上它是一个副本实例。下次请使用编辑页面上的101010按钮格式化代码。而且,这里的大多数人都不愿意看到您刚才在这里丢弃的大量代码。尽量将问题减少到10-15行,最好是独立的,即不需要其他标题。最后,你应该花点时间制定一个适当的问题。如果没有这个问题,我会投票结束这个问题,因为这不是一个真正的问题。嗯,错误在哪一行?你有没有试着看一下这个问题?我喜欢盲目使用stackoverflow作为调试器。您应该制作一个脚本,在每次不编译时自动发布代码和错误消息。@Potatoswatter:Lol。我还以为我的速度变慢了-C++ 错误:C2143:语法错误:缺少“;”在“.”之前,c++,C++,m_employees不是一个变量,它是节类标题中typedef的类型名称。在同一行中,您正在使用newEmployee,就像它是指向员工实例的指针一样,但实际上它是一个副本实例。下次请使用编辑页面上的101010按钮格式化代码。而且,这里的大多数人都不愿意看到您刚才在这里丢弃的大量代码。尽量将问题减少到10-15行,最好是独立的,即不需要其他标题。最后,你应该花点时间制定一个适当的问题。如果没有这个问题,我会投票结束这个问题,因为这不是一个真正的问题。嗯,错误在哪一行?你有没有试着看一下这个问
//// 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;
typedef multimap<string,Employee*> EmpMap;
EmpMap m_employees;