멤버 변수 (Data Members)
멤버 변수는 클래스의 상태를 나타내는 변수들입니다.
객체의 속성을 표현하며, 각 객체마다 고유한 값을 가집니다.
멤버 변수 선언
멤버 변수 초기화
멤버 변수는 여러 방법으로 초기화할 수 있습니다.
- 생성자 초기화 리스트 (권장)
- 클래스 내 직접 초기화 (C++ 11 이후)
- 생성자 본문 내 초기화
멤버 함수 (Member Functions)
멤버 함수는 클래스의 행동을 정의하는 함수들입니다.
객체의 상태를 조작하거나 정보를 반환하는 역할을 합니다.
일반 멤버 함수
const 멤버 함수
객체의 상태를 변경하지 않는 함수는 const
로 선언해야 합니다.
이는 컴파일러가 최적화를 수행하고 의도치 않은 수정을 방지하는 데 도움을 줍니다.
정적 멤버 함수
클래스의 인스턴스 없이 호출할 수 있는 함수입니다.
클래스 전체에 관련된 작업을 수행할 때 유용합니다.
this 포인터
this
는 현재 객체를 가리키는 포인터입니다.
멤버 함수 내에서 현재 객체의 멤버에 접근하거나, 객체 자체를 참조할 때 사용됩니다.
인라인 함수
inline
키워드를 사용하거나 클래스 정의 내에 함수를 정의하여 인라인 함수를 만들 수 있습니다.
인라인 함수는 컴파일러에 의해 호출 지점에 직접 삽입되어 함수 호출 오버헤드를 줄일 수 있습니다.
멤버 함수 포인터
멤버 함수를 가리키는 포인터를 사용할 수 있습니다.
이는 런타임에 특정 멤버 함수를 선택하여 호출해야 할 때 유용합니다.
실습 : 은행 계좌 관리 시스템
다음 요구사항을 만족하는 BankAccount
와 Bank
클래스를 구현해보세요.
BankAccount
클래스 : 계좌번호, 소유자 이름, 잔액을 멤버 변수로 가짐
Bank
클래스 : 여러 BankAccount
객체를 관리하고, 계좌 생성, 입금, 출금, 송금 기능을 제공
연습 문제
Time
클래스를 구현하세요. 시, 분, 초를 멤버 변수로 가지고, 시간 더하기, 빼기 연산을 수행하는 멤버 함수를 구현하세요.
Matrix
클래스를 구현하세요. 2차원 배열을 동적으로 할당하여 행렬을 표현하고, 행렬 덧셈, 뺄셈, 곱셈을 수행하는 멤버 함수를 구현하세요.
참고자료
- Stroustrup, Bjarne. "The C++ Programming Language (4th Edition)"
- Meyers, Scott. "Effective C++: 55 Specific Ways to Improve Your Programs and Designs"
- Sutter, Herb and Alexandrescu, Andrei. "C++ Coding Standards : 101 Rules, Guidelines, and Best Practices"
- C++ Reference : Member functions
- ISO C++ Core Guidelines : F : Functions