[ C++ ] 상속의 개념 | 상속 예제

2021. 5. 18. 21:47·Archive/Develop
728x90
반응형

C++ 에서 상속이란?

 

클래스 사이에서의 상속관계를 정의하는 것이다.

 

기본 클래스의 속성과 기능을 파생 클래스에 물려주는 것이다.

 

+ 기본 클래스 -> 상속해주는 클래스. 부모 클래스

+ 파생 클래스 -> 상속받는 클래스. 자식 클래스

 

 

클래스를 상속하게 되면 얻는 이점

 

1. 클래스 간결하게 작성

 

2. 클래스 간의 계층적 분류 및 관리 용이

 

 

 

상속관계의 생성자와 소멸자 실행

 

 

질문 1:

 

파생 클래스의 객체가 새엇ㅇ될 때 파생 클래스의 생성자와 기본 클래스의 생성자가 모두 실행되나요?

 

답 1:

 

네 둘 다 실행됩니다.

 

 

질문 2:

 

파생 클래스의 생성자와 기본 클래스 생성자 중 어떤 생성자가 먼저 실행되나요?

 

답 2:

 

기본 클래스의 생성자가 먼저 실행됩니다.

 

 

 

#include <iostream>
using namespace std;
class TV {
int channel;
public:
    TV(int channel) { this->channel = channel; }
    TV() {}
    void on() { cout << channel << " On" << endl; }
    void off() { cout << " Off" << endl; }
    ~TV() { cout << "TV 소멸자" << endl; }
    int getChannel() { return channel; }
};
class ColorTV :public TV {
protected:   string color;
public:
    ColorTV(int channel, string color) :TV(channel) { this->color = color; }
    ColorTV() {}
    void show() { cout << color << "색 보여라" << endl; }
    ~ColorTV() { cout << "color TV 소멸" << endl; }
};
class SmartTv : public ColorTV {
    int price;
public:
    SmartTv() {}
    SmartTv(int channel, string color, int price) :ColorTV(channel, color) { this->price = price; }
    void replay() {
        cout << color << "색 채널번호 " << getChannel() << ", 가격 " << price
            << "원 입니다." << endl;
    }
};
class WideTV : public ColorTV {
private:
    int size;
public:
    WideTV(string color, int channel, int size);
    void play();
};
WideTV::WideTV(string color, int channel, int size) :ColorTV(channel, color) {
    this->size = size;

}
void WideTV::play() {
    cout << color << "색" << getChannel() << "번" << size << "인치" << endl;
}

int main() {
    TV t(7);
    t.on(); t.off();
    ColorTV ct(9, "RED");
    SmartTv sm(12, "Blue", 2500000);
    sm.replay();
    ct.show();
    ct.on();

    WideTV wt("Yello", 11, 60);
    wt.play();
}

 

 

 

728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ C# ] C# 을 혼자서 익혀보자! (C# 독학 도전기) | C# 강의 링크 모음  (0) 2021.05.27
[ C++ ] 가상함수와 추상클래스  (0) 2021.05.26
[ C++ ] 프렌드함수 || 연산자 중복 || 프렌드함수 예제, 연산자 중복 예제  (0) 2021.05.11
[ Oracle ] 프로시저와 sql*plus 예제 (프로시저 호출하는 방법)  (0) 2021.05.10
[ C++ ] 함수 중복(Function Overloading)  (0) 2021.05.04
'Archive/Develop' 카테고리의 다른 글
  • [ C# ] C# 을 혼자서 익혀보자! (C# 독학 도전기) | C# 강의 링크 모음
  • [ C++ ] 가상함수와 추상클래스
  • [ C++ ] 프렌드함수 || 연산자 중복 || 프렌드함수 예제, 연산자 중복 예제
  • [ Oracle ] 프로시저와 sql*plus 예제 (프로시저 호출하는 방법)
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    백준 파이썬
    코드업
    javascript
    백준 문제풀이
    자바스크립트 API
    자바스크립트 객체
    Codeup
    docker
    자바스크립트
    파이썬 백준
    파이썬
    파이썬 기초
    Django
    oracle db
    Oracle
    코드업 기초
    장고
    백준 풀이
    C++
    Python
    오라클
    파이썬 기초 문제
    보안뉴스
    Git
    백준
    파이썬 문제
    카카오 100일 프로젝트
    코드업 파이썬 기초 100제
    파이썬 알고리즘
    비박스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ C++ ] 상속의 개념 | 상속 예제
상단으로

티스토리툴바