성엽이
KKIMSSI
성엽이
전체 방문자
오늘
어제
  • 분류 전체보기 (454)
    • :) (2)
    • C프로그래밍이론 (9)
    • C++프로그래밍 (64)
      • STL (1)
    • C# (2)
    • Visual studio 10.0 (9)
    • AT91SAM7S256 (21)
    • 논리회로 (14)
    • AVR2560 (11)
    • TCPIP (16)
    • NetWork (4)
      • Ubuntu Linux (2)
    • Assembly (21)
    • UNIX 프로그래밍 (6)
    • RFID 분석 (1)
    • Win32 API (7)
    • Cortex-M3 (4)
    • Unity (91)
    • Flutter (9)
    • OwnProject (11)
      • It's mine (5)
      • 마인드스톰 실습 (1)
      • 보고서 자료 (2)
      • RPi B+ (2)
    • ETC (25)
      • 상식 (3)
    • MFC (40)
    • PostgeSQL (18)
    • 영상제어 (6)
      • VFW_영상처리 (1)
    • Python (0)
    • Java (30)
      • SpringBoot (2)
      • Javascript (1)
      • JSP (13)
      • Spring (8)
    • Oracle (4)
      • SQL (3)
    • HTML (6)
      • Thymeleaf (1)
      • CSS (1)
      • Bootstrap (3)
    • IDE (1)
      • VS Code (1)
    • Android (2)
    • Privacy Policy (0)
    • MYSQL (2)
      • MariaDB (2)
    • AWS (5)
    • 개인공부 (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
  • 관리자
  • 글쓰기

공지사항

인기 글

태그

  • ARM Reverse Engineering
  • WINAPI
  • Boot Code 분석
  • 문자열 나누기
  • MFC

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
성엽이

KKIMSSI

2013.11.14_ 상속(Inheritance) _ 예제 실습
C++프로그래밍

2013.11.14_ 상속(Inheritance) _ 예제 실습

2013. 11. 14. 15:38

상속                                                                                                                            

: 부모클래스 - 자식클래스가 존재한다. 부모클래스의 멤버 변수/함수를 그대로 가져와서(상속) 자식클래스에서 사용가능하다.

  

class 파생클래스(자식클래스) : 접근지정자( public / private / protected ) 기반클래스(부모클래스,기저클래스)

{

  멤버함수와 멤버변수 선언;

};

                                                                                                                                                                                                        

※ 값의 접근(접근지정자)


 접근지정자 

 자기자신(기반클래스)에서 

 파생클래스에서(자식클래스) 

 외부에서(main,...) 

 public

 참조가능 

 참조가능 

 참조가능 

 protected

 참조가능 

 참조가능 

 참조불가능 

 private

 참조가능 

 참조불가능 

 참조불가능 


                                                                                                                                                                                                        

 

상속 예제

#include <iostream>

#include <string>

using namespace std;


class Car
{
  public:
    string Color;
    string Vendor;
    string Model;
      
    void Print()
    {
      cout << Color << endl;
      cout << Vendor << endl;
      cout << Model << endl;
    }

    Car()
    {
      Color = "없음";
      Vendor = "없음";
      Model = "없음";
      cout << "Car class 생성자 구동" << endl;
    }

    ~Car()
    {
      cout << "Car class 소멸자 구동 시작" << endl;
      
      Print();

      cout << "Car class 소멸자 구동 끝" << endl;
    }


};




class BMW_745
{
  public:
    string Color;
    string Vendor;
    string Model;

    BMW_745()
    {
      cout << "BMW class 생성자 구동" << endl;
      Color = "White";
      Vendor = "BMW";
      Model = "745Li";
    }

    void Print()
    {
      cout << Color << endl;
      cout << Vendor << endl;
      cout << Model << endl;    
    }

    ~BMW_745()
    {
      cout << "BMW_745 class 소멸자 구동 시작" << endl;
      
      Print();

      cout << "BMW_745 class 소멸자 구동 끝" << endl;
    }

    
};

class Morning : public Car //public을 적어주지 않으면 private으로 상속됨
{
  public:

    Morning()
    {
      cout << "Morning class 생성자 구동" << endl;
      Color = "Red";
      Vendor = "KIA";
      Model = "Morning";
    }

    ~Morning()
    {
      cout << "Morning class 소멸자 구동 시작" << endl;
      
      Print();

      cout << "Morning class 소멸자 구동 끝" << endl;
    }
};


int main()
{
  Car aCar;

  aCar.Color = "Red";
  aCar.Vendor = "SOONK";
  aCar.Model = "H2";
  
  //aCar.Print();
  
  BMW_745 Mycar;

  //Mycar.Print();

  Morning MomCar;

  //MomCar.Print();


  // 생성순서는 먼저 생성한 객체부터 이고
  // 상속받았다면 부모먼저 자식이 다음,
  // 소멸 순서는 마지막에 생성된것부터...

  
  return 0;
}




                                                 소스


131113_Src_Inherit.cpp

                                                       


저작자표시 (새창열림)

'C++프로그래밍' 카테고리의 다른 글

2013.11.21 _ 상속에서 멤버 함수 재정의(함수오버로딩,함수오버라이딩)  (0) 2013.11.21
2013.11.20 _ 상속 예제 연습  (0) 2013.11.20
[2013.11.01] C++ _ 자료형과 연산자  (0) 2013.11.01
2013.10.18_문자열변수와 문자열상수의 구분  (0) 2013.10.18
2013.05.27_pragma pack() 에 대해서_팁  (0) 2013.05.27
    'C++프로그래밍' 카테고리의 다른 글
    • 2013.11.21 _ 상속에서 멤버 함수 재정의(함수오버로딩,함수오버라이딩)
    • 2013.11.20 _ 상속 예제 연습
    • [2013.11.01] C++ _ 자료형과 연산자
    • 2013.10.18_문자열변수와 문자열상수의 구분
    성엽이
    성엽이

    티스토리툴바