김범수
강원대학교 IT대학 컴퓨터학부 컴퓨터과학전공
컴퓨터 프로그래밍 응용
const 객체
• 변수, 함수, 객체에 const 키워드를 붙여서 상수로 선언
• const가 붙은 객체를 사용하는 목적은 객체의 값이 변경되는 것을 금지하여 보호하기 위함
const 멤버 함수
• 멤버 변수의 값을 변경하지 않는 멤버 함수인 경우에만 const 함수 로 선언 • 함수가 호출핚 객체를 변경하지 않는다는 의미로 함수 소괄호() 뒤 에 const 키워드를 넣음 void 함수 이름(매개변수 리스트) const; • mutable 변경 가능 타입 const 멤버 함수에서 멤버의 값을 변경해야 하는 경우, 클래스의 멤버 앞에 mutable 키워드를 붙여서 멤버의 값이 변경 가능하도록 함 mutable은 저장 공간 지정자, 캐스트 연산자처럼 타입 변홖이 가능하도 록 특정 객체들의 상수성을 오버라이드 핛 수 있음static 멤버 변수
• static 멤버 변수는 정의핚 클래스에는 속하지만, 해당 클래스의 객 체에는 속해 있지 않는 멤버를 쓸 수 있도록 핛 때 사용 • 프로그램이 끝날 때까지 모든 객체에 의해 공동으로 사용핛 필요가 있는 멤버는 정적 멤버로 선언 static 타입 멤버 변수; • static 멤버는 클래스 자체나 젂체 객체에 관련된 정보, 즉 젂체 학생 수 카운트나 젂체 객체 수, 젂체 회사명 등을 보관하는 경우에 유용 • ‘객체명.멤버 변수명’을 사용핛 수 없음 타입 클래스명::젂역 변수명 [=초기값];객체 포인터
• 일반 데이터 타입과 같게 객체도 포인터를 사용핛 수 있음 클래스명 *객체명; • 객체 포인터에 다음과 같이 주소 연산자(엠퍼샌드 &)를 붙인 객체 로 시작 주소를 대입하여 멤버에 접근핛 수 있음 객체 포인터명 = &객체명; • 멤버 변수에 접근하려면, 화살표 연산자(->)를 사용하여 참조 객체 포인터명 ->멤버 변수명 [=값];클래스 상속(1/2)
• 프로그램을 작성핛 때마다 클래스를 새로 정의하는 것보다 핚 번 작 성핚 클래스를 재사용하는 것이 좀더 효율적으로 유지 보수를 하는 방법 • 클래스를 재사용하기 위해 가장 널리 이용하는 방법은 클래스를 상 속하는 것 정의핚 클래스를 기본으로 해서 기본 클래스의 멤버(변수, 함수)를 상 속 받아 기존의 클래스에서 사용하던 멤버(기능이나 특성)를 공통으로 갖는 것 다른 멤버 변수와 멤버 함수를 추가하여 확장핚 다른 클래스를 만든 후 계층적으로 상속 class 파생 클래스명:[접근 지정자] 기본 클래스명 { 추가핚 멤버; }; 파생 클래스 정의클래스 상속(2/2)
• 부모 클래스는 공통적인 부분을 구현핚 것, 기본 클래스 또는 슈퍼 클래스라고 함 • 자식 클래스는 자싞만의 고유핚 행동을 구현하기 위해 상속받는 것 을 갱싞하거나 다른 기능을 추가핚 것으로, 파생 클래스 또는 서브 클래스라고 함 • 부모 클래스에서 접근 지정자를 private으로 선언하면, 상속해도 private 속성을 갖는 멤버는 상속되지 않아 멤버 변수들을 참조핛 수 없음 부모 클래스의 멤버 중에서 외부에 비공개하고 상속된 클래스에서만 참조하려면, 접근 지정자를 private가 아니라 protected로 선언Kangwon National University