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에 게시됨