class Point
{
public:
Point& operator++(); // 전위 증가 연산자
Point operator++(int); // 후위 증가 연산자
private:
int _x;
};
// 해당 객체의 값을 증가하고 해당 객체를 반환
Point& Point::operator++()
{
++_x;
return *this;
}
// 해당 객체의 값을 증가하고 기존 값을 갖는 임시 객체를 반환
Point Point::operator++(int)
{
Point temp = *this;
++*this;
return temp;
}
후위 증감 연산은 기존 객체의 값을 갖는 임시 객체를 반환하기 때문에 복사 생성 및 소멸 비용이 증가
- 요즘 컴파일러는 후위 증감과 전위 증감 연산자를 최적화하기 때문에 성능 차이가 거의 없음
'C++' 카테고리의 다른 글
C++ std::function (0) | 2024.09.23 |
---|---|
C++ atomic (0) | 2024.09.18 |
C++ 유니폼 초기화(Uniform Initialization), initializer_list (1) | 2024.09.18 |
C++ 템플릿을 헤더파일에 정의하는 이유 (0) | 2024.09.03 |
싱글톤(singlton) vs static (0) | 2024.08.20 |