8.1 객체지향 프로그래밍과 클래스
우리가 이러한 구조를 하나로 묶어서 표현할 수 있다. -> struct
print의 매개변수를 struct로 받아버리자.
void print(const Friend &fr){
cout << fr.name << ...
}
print(jj);
fr.name, fr.address 등을 쓰는 것도 번거롭다.
struct Friend{
string name;
string address;
int age;
double height;
void print(){
cout << name << " " << address << "\n";
}
};
int main(){
...
Friend jj; // instanciation , instance
jj.print();
return 0;
}
struct 안에 print를 넣어 깔끔하게 표현할 수 있다.
데이터와 기능이 묶여있다 -> object
단순한 기능 -> struct도 가능. but struct는 데이터만 묶는 경우가 일반적
더 복잡하고 다양한 기능을 위해 class로 쓰는게 일반적.
class Friend{
public: // access specifier(public,private,protected)
string _name // member라는 것을 표현하기 위해 보통 언더바 or m_ 로 표현
}
vector로도 받을 수 있다.
vector<Friend> my_friends;
my_friends.resize(2);
my_friends[0].print();
my_friends[1].print();
...