class calculator
{
public:
calculator(const int& val)
{
init(val);
}
~calculator(){}
void init(const int& val)
{
value = val;
}
void add(const int val) { value += val; }
void subtract(const int val) { value -= val; }
void multi(const int val) { value *= val; }
void div(const int val) { value /= val; }
void Print() { cout << "결과는 " << value << "입니다."; }
private:
int value;
};
int main() {
// 줄줄이 꼬챙이를 한줄로 줄여보자.
calculator c(10);
c.add(10);
c.subtract(10);
c.multi(10);
c.div(2);
c.Print(); // 50
}
class calculator
{
public:
calculator(const int& val)
{
init(val);
}
~calculator(){}
void init(const int& val)
{
value = val;
}
calculator& add(const int val) { value += val; return *this; }
calculator& subtract(const int val) { value -= val; return *this; }
calculator& multi(const int val) { value *= val; return *this; }
calculator& div(const int val) { value /= val; return *this; }
void Print() { cout << "결과는 " << value << "입니다."; }
private:
int value;
};
int main() {
calculator c(10);
c.add(10).subtract(10).multi(10).div(2).Print();
}
// 복사가 아닌 자기 자신의 주소를 리턴한다. 그렇기 때문에 바로 참조 . 으로 이어 갈 수 있었던 것.