C++에서 friend 키워드의 진화: 언어 설계의 정교한 도구로 자리매김

friend는 단순한 문법 요소를 넘어섰다 이제 friend는 C++ 언어 내에서 단지 "private 멤버에 접근하게 해주는 키워드"를 넘어서, 고도로 제어된 신뢰 관계 설정 수단으로 자리 잡고 있다. 시간이 지날수록 그 사용은 더 엄격히 규정되고, 오히려 필요성이 커졌다. C++98: 기본적인 접근 권한 부여 초기 C++에서는 friend가 매우 단순했다. 클래스 외부의 함수나 클래스에 ...

7월 29일 02:54에 게시됨

C++의 친구 함수와 모듈 중심 설계

다음과 같은 선언은 표준 라이브러리에 포함된 것이 아니라, 단지 개념을 설명하기 위해 사용한 예시입니다: class Matrix; class MatrixOperator; 이 두 줄은 전방선언(Forward Declaration)을 나타냅니다. 즉, 해당 타입이 존재한다는 것을 알리지만, 정의는 나중에 하겠다는 의미입니다. 예를 들어, 다음과 같이 구성할 수 있습니다: class Matrix; // 전방선언 cl ...

6월 26일 21:42에 게시됨

C++ 객체 모델, this 포인터, 그리고 friend 키워드 심층 분석

C++ 객체 메모리 모델 C++에서 클래스의 멤버 변수와 멤버 함수는 메모리 상에서 완전히 분리되어 저장됩니다. 객체의 크기(sizeof)를 계산할 때 포함되는 것은 오직 비정적(non-static) 멤버 변수뿐입니다. 멤버 변수가 하나도 없는 빈 클래스의 경우, 컴파일러는 각 객체가 고유한 메모리 주소를 가질 수 있도록 1바이트의 공간을 할당합니다. 반면, 정적 멤버 변수와 모 ...

6월 12일 23:57에 게시됨

C++ Friend 기능의 심층 분석

Friend는 C++에서 논란이 있으면서도 실용적인 가치를 지닌 기능이다. 1. 언어 설계 철학의 차이 C#에서는 private 멤버에 대한 접근이 해당 클래스 내부에서만 허용된다. 하지만 C++은 다른 접근 방식을 취한다: 캡슐화는 절대적 차단이 아닌, 접근 권한의 세밀한 제어를 의미한다. C++에서는 특정 함수나 클래스가 외부에 있더라도 신뢰할 수 있는 경우, 이를 허용 ...

6월 3일 16:32에 게시됨