1
2
3
4
5
6
7
8
9
10
11
class Point {
private:
    int x;
    int y;
public:
    Point();
    Point(int a, int b);
    void print();
};
Point::Point() : x(0), y(0){}
Point::Point(int a, int b) : x(a), y(b) {}
cs




라는 클래스를 하나 만들고


1
2
3
Circle::Circle(Point p, int r) : center(p), radius(r) {}
 
Circle::Circle(int a, int b, int r) : center(a,b), radius(r) {}
cs




라는 클래스를 만들었습니다


1
2
3
4
5
6
7
8
9
 
Circle::Circle(Point p, int r) {
    Point center(p);
    radius = r;
}
Circle::Circle(int a, int b, int r) {
    Point center(a, b);
    radius = r;
}
cs

이렇게 했더니 원하는 결과값이 나오지 않더라구요



근데 멤버 초기화 목록을 이용해서 


1
2
3
Circle::Circle(Point p, int r) : center(p), radius(r) {}
 
Circle::Circle(int a, int b, int r) : center(a,b), radius(r) {}
cs


이렇게하면 되던데 이게 객체안에 객체가 있을때 이렇다는데 혹시 이거 잘 이해가 가지않는데 왜그런가요 ?