C++ 상속 Teacher-Student 예제

2021. 3. 19. 19:47·SW개발/C++
반응형

상속 Teacher-Student 예제

  • 상속을 사용하지 않은 원본 예제

  • Teacher, Student 클래스의 공통 멤버인 name_, setName, getName을 묶어서 Person이라는 클래스를 만들고 상속을 적용했다.

  • 생성자 부분은 기본예제 참고

main.cpp

#include "Student.h"
#include "Teacher.h"

int        main()
{
    using namespace std;

    Student std("Jack Jack");

    std.setName("New Jack");
    std.getName();

    cout << std.getName() << endl;

    Teacher teacher1("Dash");

    teacher1.setName("Dr. K");

    cout << teacher1.getName() << endl;

    cout << std << endl;
    cout << teacher1 << endl;
}

/* stdout
New Jack
Dr. K
New Jack 0
Dr. K
*/

Person.h

#pragma once

#include <iostream>

class Person
{
    std::string name_;

public:
    Person(const std::string & name_in)
        : name_{name_in}
    {}

    std::string    getName() const
    {
        return name_;
    }

    void    setName(const std::string& name_in)
    {
        name_ = name_in;
    }
};

Student.h

#pragma once

#include "Person.h"

class Student : public Person
{
    int        intel_;

public:
    Student(const std::string& name_in = "No Name", const int& intel_in = 0)
        : Person(name_in), intel_{ intel_in }
    {}

    void    setIntel(const int& intel_in)
    {
        intel_ = intel_in;
    }

    int        getIntel()
    {
        return intel_;
    }

    friend std::ostream& operator << (std::ostream& out, const Student& student)
    {
        out << student.getName() << ' ' << student.intel_;
        return out;
    }
};

Teacher.h

#pragma once

#include "Person.h"

class Teacher : public Person
{

public:
    Teacher(const std::string& name_in = "No Name")
        : Person(name_in)
    {}

    friend std::ostream& operator << (std::ostream& out, const Teacher& teacher)
    {
        out << teacher.getName();
        return out;
    }
};
반응형
저작자표시 (새창열림)

'SW개발 > C++' 카테고리의 다른 글

C++ 유도된 클래스들의 소멸 순서  (0) 2021.03.19
C++ 유도된 클래스들의 생성 순서  (0) 2021.03.19
C++ 상속 기본 예제  (0) 2021.03.19
C++ 상속 (Inheritance)  (0) 2021.03.19
따라하며 배우는 C++ 11장  (0) 2021.03.19
'SW개발/C++' 카테고리의 다른 글
  • C++ 유도된 클래스들의 소멸 순서
  • C++ 유도된 클래스들의 생성 순서
  • C++ 상속 기본 예제
  • C++ 상속 (Inheritance)
Caniro
Caniro
  • Caniro
    Minimalism
    Caniro
  • 전체
    오늘
    어제
    • 전체보기 (319)
      • SW개발 (268)
        • Java Spring (6)
        • C++ (186)
        • Python (21)
        • Linux (16)
        • 알고리즘 (13)
        • Git (4)
        • Embedded (1)
        • Raspberrypi (9)
        • React (3)
        • Web (2)
        • Windows Device Driver (6)
      • IT(개발아님) (46)
        • Windows (26)
        • MacOS (7)
        • Utility (11)
      • 챗봇 짬통 (0)
      • 일상 (2)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    windows
    Solaris 10
    백기선
    mspaint
    MacOS
    java
    citrix workspace
    Windows 11
    윈도우 명령어
    스프링 프레임워크 핵심 기술
    vscode
    스프링
    제외
    로지텍 마우스 제스처
    spring
    알림
    맥북 카카오톡 알림 안뜸
    EXCLUDE
    dism
    KakaoTalk
    SFC
    윈도우
    SunOS 5.1
    시스템 복구
    unix
    그림판
    logi options
    Workspace
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Caniro
C++ 상속 Teacher-Student 예제
상단으로

티스토리툴바