[C++] 좀더 Rusty한 클래스 설계

클래스 짜면서 생각해봤다.

클래스의 메서드에선, 해당 클래스타입을 명시해야할 경우가 잦다.
operator= 기본 메서드에나, 복사 및 이동생성자에나 말이다.
그 외에도 경우에 따라 자신 타입을 인자로 받거나 반환할 경우는 수없이 많을 것이다.

그리고 클래스 자신의 이름은 클래스마다 다르고, 제한없이 길어질 수 있다.
이는 분명히 가독성의 저해로 이어질 수 있는 바.

간단한 해결책을 하나 생각해봤다.

타입 자신을 클래스 내에서 Self로 재정의하는 것이다. image

image 그럼 이랬던 클래스의 정의부가


image

image 이렇게 간소화될 수 있다. 훨씬 직관적이다.
이게 다 Rust 덕분이다.


재귀타입을 정의할 경우에도 좀더 가시성이 향상된다. image