[c++] 값 레퍼런스 래퍼 제공하기
C++의 값 레퍼런스를 제공하기 위해 래퍼 클래스를 만들어 사용할 수 있습니다. 래퍼 클래스는 값 형식을 가지고 있는데, 이를 레퍼런스로 래핑하여 포인터 대신 사용할 수 있게 합니다. 이를 통해 메모리 관리와 객체 소유권을 제어할 수 있습니다.
아래는 값 레퍼런스 래퍼를 제공하는 예제 코드입니다.
#include <iostream>
template <typename T>
class ValueWrapper {
private:
T& value;
public:
ValueWrapper(T& val) : value(val) {}
T& get() const {
return value;
}
void set(const T& newValue) {
value = newValue;
}
};
int main() {
int num = 5;
ValueWrapper<int> wrapper(num);
std::cout << "Original value: " << num << std::endl;
std::cout << "Wrapped value: " << wrapper.get() << std::endl;
wrapper.set(10);
std::cout << "Updated value: " << num << std::endl;
std::cout << "Updated wrapped value: " << wrapper.get() << std::endl;
return 0;
}
위 예제 코드에서는 ValueWrapper
클래스를 사용하여 int
형식의 값을 레퍼런스로 감싸고 있습니다.
이처럼 래퍼 클래스를 사용하면 값 레퍼런스를 효율적으로 제공하고 객체 소유권을 관리할 수 있습니다.
참고문헌:
C++ Templates: The Complete Guide, 2nd Edition. Josuttis, Nicolai. 2017. O’Reilly Media.