inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

홍정모의 따라하며 배우는 C++

11.1 상속의 기본 (1)

궁금 합니다

해결된 질문

271

걷는게 좋아

작성한 질문수 2

0

상속을 할수있다면 이전 강의에서 설명해주신 구성 ,집합 관계 처럼 설계를 하지않고 다 상속 해주면 더 좋은것 아닌가요? 상속을 할수있는데 구성,집합 ,의존등 관계를 써서 설계를 하는 이유가 따로 있나요?

(그냥 강의 듣다가 문득 생각이 들어서 질문 남깁니다)

상속 구성 C++ 집합관계

답변 1

6

안소

상속이 언제나 좋은 것은 아니에요! 상속을 하면 부모 클래스에 있는 모든 것을 물려받게 되죠. 선택적으로 원하는 것만 상속 받을 수는 없습니다. 

내가 사용하지 않을, 사용할 일이 없는 부분인데도 부모로부터 다 상속받아서 가지고 있으면 메모리상 비효율적이겠죠? 사람은 짖을 일이 없는데도 불구하고 사람 클래스가 강아지 클래스를 상속받으면 불필요하게 짖는 기능을 가지고 있어야 겠죠. 쓸 일도 없을텐데요! 그래서 상속을 하는게 좋을지 아닐지는 경우에 따라 다릅니다. 서로 전혀 다른 별개의 클래스로서 두고 필요한 부분만 구성,집합,의존 같은 '관계' 정도만 맺는게 더 나을 때도 있겠습니다.

상속은 말그대로 '상속'이라 A Has B 의 관계이기 때문에(혹은 A Is a B) A클래스가 B 클래스의 모든 부분을 "공통적"으로 포함 하고 있을 때만 A 클래스가 B 클래스를 상속받도록 하는게 효율적이겠죠. 예를 들어 '버스'라는 개념은 '교통 수단' 개념을 모두 가지고 있겠죠. 이럴 경우엔 버스 클래스를 교통 수단 클래스로부터 상속받게 하는게 낫겠죠. 버스는 곧 교통수단이니까요. 버스는 교통 수단의 특성과 기능들을 모두 사용할 수 있으니 교통 수단 클래스를 상속 받는게 낫겠습니다. 그러나 '버스'라는 개념이 '운전사'라는 개념을 포함할 수 있을까요? 버스의 특성이 곧 운전사의 특성 또한 가지게 되는 것은 말이 되지 않습니다. 이런 경우엔 상속 관계가 어울리지 않겠죠. 이땐 상속이 아니라 버스 클래스와 운전사 클래스를 별개로 두고 구성,집합,의존 같은 관계들을 맺게 하는게 낫지 않을까요? 상속도 구성,집합,의존 같은 관계 종류 중 하나일 뿐이라고 생각해주시면 됩니다!

1

걷는게 좋아

구체적인 예를 들어서 설명해주신점 감사합니다 확실히 이해했습니다 

변수가 메모리에 저장되는 것을 알려주는 강의가 어떤강의였죠

1

467

1

메모리 주소 10진수로 출력

1

654

1

클래스 템플릿 특수화에서 boolalpha로 표현된 리턴값에 대해 질문이 있습니다.

1

500

1

여러가지 리턴 타입에 관한 강의가 어떤 걸까요?

1

534

1

메모리 주소에 관한 질분

0

679

1

인터페이스 클래스에서 reportError의 매개변수에 대해 궁금한 것이 있습니다.

0

550

1

형변환 오버로딩에서 const 관련 질문이 있습니다.

0

443

1

Digit 뒤에 reference를 사용하는 이유

0

510

1

4.2 전역 변수, 정적 변수, 내부 연결, 외부 연결

0

324

1

dat파일이...

0

540

1

TODO:대입 연산자 오버로딩에 대한 소스코드입니다.

0

645

1

복사 생성자 관련 질문이 있습니다.

0

454

1

수업 중 궁금한점이 있습니다.

1

390

1

라이브러리자체가 이해가 되지 않습니다.

0

561

1

마지막 예제 질문

0

302

1

증감연산자 위치에 따른 수행 순서 질문입니다.

0

375

1

단항 연산자 오버로딩에서 return 부분에 질문이 있습니다.

1

413

1

friend함수 관련 질문이 있습니다.

0

312

1

operator+ 정의부분에서 궁금한 것이 있습니다.

0

447

1

3분 17초 질문

0

350

1

함수에 값을 대입한다는 개념이 이해가 되지 않습니다.

0

448

1

int getvalue() const에서 const는 왜 뒤에 붙는건가요?

0

445

2

const Something &st에서 const를 빼면 안되나요?

0

300

1

friend함수는 다른 클래스의 멤버함수로 쓸 수 없나요??

1

494

1