Constructor Parameter Method ¶
Constructor Method로 인스턴스를 만들때, 그리로 넘겨준 파라메터들을 새롭게 만들어진 인스턴스로 어떻게 갖고 오는가? 가장 유연한 방법은 각각의 변수에 대해 setter들을 만들어 주는 것이다. 즉,
~cpp class Point { /* ... */ void setX(int x) { /* ... */ } void setY(int y) { /* ... */ } static Point* makeFromXnY(int x, int y) { Point* pt = new Point; pt->setX(x); pt->setY(y); return pt; } /* ... */ };이렇게 되는것이다. 하지만 변수가 많아질수록 setter들은 계속 늘어난다. 이럴때에는 모든 변수를 한번에 set해주는 하나의 메소드를 만든다. 그리고 접두사를 set으로 명명해주고 변수의 이름을 딸려준다.
~cpp class Point { /* ... */ static Point* makeFromXnY(int x, int y) { Point* pt = new Point; pt->setXnY(x,y); return pt; } void setXnY(int x, int y) // smalltalk에서는 setX:xNum y:yNum이라는 메세지를 사용한다. { this->x = x; this->y = y; } /* ... */ };