본문 바로가기

서적 정리/C++ 기초 플러스31

76.public 다형 상속 파생 클래스의 메소드가 기초 클래스의 메소도와 다른 행동을 요구되는 상황이 있을 수 있다. 호출하는 객체에 따라 메소드의 내용이 달라지는 것을 다형(polymorhphic)이라 부른다. public 다형 상속을 구현하는 두 가지 중요한 방법이 있다. 기초 클래스 메소드를 파생 클래스에서 다시 정의한다. 가상 메소드(virtual method)를 사용한다. 기초 클래스의 메소드를 파생 클래스에서 다시 정의한다는 것이 곧 가상 메소드를 사용한다는 의미랑 같다고 생각한다. 가상 메소드를 사용하지 않고 재정의하는 경우 예상치못한 일이 발생할 수 있기 때문이다. 기초 클래스 Animal과 파생 클래스 Dog을 구현한다고 가정해보자. 책의 코드는 길어서 임의로 작성했다. //Animal.h #pragma once .. 2022. 7. 12.
75.상속: is-a 관계 C++는 상속의 3가지 형식으로 public, protected, private를 가지고 있다. public 상속이 가장 일반적인 형식이며 is-a 관계를 나타낸다. 파생 클래스 객체가 기초 클래스 객체이기도 하다는 뜻이다. 기초 클래스 객체를 대상으로 수행할 수 있는 모든 작업을, 파생 클래스 객체에 대해서도 수행할 수 있다. 예를 들어 Fruit이라는 클래스가 있다고 가정하자. 이 클래스는 과일의 무게와 칼로리 열량을 저장할 수 있다. 이때 바나나는 과일의 일종이므로, Fruit 클래스로부터 Banana 클래스를 파생시킬 때, Banana 클래스는 Fruit 클래스의 무게와 칼로리 열량을 가질 것이다. 이런 관계를 is-a 관계라고 한다. 2022. 7. 12.
74.간단한 기초 클래스부터 시작하자 객체 지향 프로그래밍(OOP : Object Oriented Programming)의 중요 목적 중의 하나는 재활용할 수 있는 코드를 제공하는 것이다. C++는 클래스를 확장하고 수정하기 위해 단순한 코드 수정보다 더 강력한 클래스 상속(class inheritance)을 제공한다. 기초 클래스(base class)라 부르는 클래스로부터 모든 메소드와 멤버들을 상속받아, 새로운 파생 클래스(derived class)를 만들 수 있게 한다. 예를 들어 탁구 동호회의 회원 정보 클래스 TableTennisPlayer를 설계해보자. //tabtenn0.h #include using std::string; class TableTennisPlayer { public: TableTennisPlayer(const s.. 2022. 7. 12.
차례 1장 : C++ 첫걸음 C++의 탄생: 간략한 역사 이식성과 표준 프로그램 작성 요령 2장 : C++ 시작하기 C++의 시작 C++ 구문 C++의 기타 구문 함수 3장 : 데이터 처리 간단한 변수 const 제한자 부동 소수점수 C++ 산술 연산자 4장 : 복합 데이터형 배열 문자열 string 클래스 구조체 공용체 열거체 포인터와 메모리 해체 포인터, 배열, 포인터 연산 변수형의 조합 배열의 대안 5장 : 루프와 관계 표현식 for 루프 while 루프 do while 루프 Range 기반의 for 루프(C++ 11) 루프와 텍스트 입력 중첩 루프와 2차원 배열 6장 : 분기 구문과 논리 연산자 if 구문 논리 표현식 문자 함수를 위한 cctype 라이브러리 ?: 연산자 switch 구문 break와 .. 2022. 7. 12.