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

+ Recent posts

목차