函数 const参数
一段代码如下,现在运行红色两行会提示出错,应该是跟const有关,当我把蓝色的const去掉后,程序就能正常运行了。问题:我觉得不去掉const也没有错呀,为什么不行呢?
class Person
{
private:
char name[20];
int age;
char gender;
public:
Person(){}
void SetName(char *n){strcpy(name,n);}
void SetAge(int a){age=a;}
void SetGender(char g){gender=g;}
char *GetName(){return name;}
int GetAge(){return age;}
char GetGender(){return gender;}
};
void PrintByGender(const vector<Person> &L,char sex)
{
vector<Person>::const_iterator iter=L.begin();
for(;iter!=L.end();iter++)
if((*iter).GetGender()==sex)
cout<<iter->GetName()<<" "<<iter->GetAge()<<endl;
}