class freeleed
{
private:
char *ID;
char *Name;
int age;
public:
void set_freeleed(char *ID, char *Name, int age);
};
void freeleed::set_freeleed(char *ID, char *Name, int age)
{
this->ID = ID;
this->Name = Name;
this->age = age;
}
int main ()
{
freeleed emp;
vector <freeleed> var;
vector <freeleed>::iterator ior;
char name[10] ="";
char id[10] ="";
int age=0;
cout<< "이름입력해라.";
cin>>name;
cout<< "아이디를 입력해라.";
cin>>id;
cout<< "나이를 입력해라.";
cin>>age;
emp.set_freeleed(id,name,age);
cout<<"fdasf";
var.push_back(emp);
ior=var.begin();
while(var.end()!=ior)
{
cout<<ior; <---------요거 에러나는데 이유좀 알려주셍 ㅜㅜ
ior++;
}
}
에러메세지는 개년에 밥말아 쳐드셨나?
error C2679: 이항 \'<<\' : 오른쪽 피연산자로 \'std::_Vector_iterator<_Myvec>\' 형식을 사용하는 연산자가 없거나 허용되는 변환이 없습니다.
이터레이터 저렇게 쓰는거 맞나
저거 앞에 * 붙여줘야됨.
이터레이터는 포인터 참조 연산자 *을 연산자 오버로딩 해서 행동이 다르다는. 변수명을 그대로 적으면 이터레이터 객체 그대로이고, 앞에 *을 붙이면 내부적으로 가리키고 있는 객체를 반환한다는.
-_-;
참고로 (*itor). <- 요런식이 표준이였는데
지금은 itor-> 로 해도 된다네
그래도 왠만하면 (*itor). 로 해줘