17.2 Basic inheritance in C++
https://www.learncpp.com/cpp-tutorial/basic-inheritance-in-c/
Inheritance는 c++에서 클래스 사이에 위치하는 개념이다.
Inheritance(is-a) 관계에서 상속해주는 클래스는
parent class, base class, superclass라고 불리우고
상속 받는 클래스는 child class, derived(파생된) class, subclass라고 불리운다
(derive는 파생하다, 유래하다)
예시를 통해서 빠르게 살펴보자
#include <iostream>
#include <string>
class Person
{
public:
std::string m_name{};
int m_age{};
Person(const std::string& name = "", int age = 0)
: m_name{name}, m_age{age}
{
}
const std::string& getName() const { return m_name; }
int getAge() const { return m_age; }
};
// BaseballPlayer publicly inheriting Person
class BaseballPlayer : public Person
{
public:
double m_battingAverage{};
int m_homeRuns{};
BaseballPlayer(double battingAverage = 0.0, int homeRuns = 0)
: m_battingAverage{battingAverage}, m_homeRuns{homeRuns}
{
}
};
int main()
{
// Create a new BaseballPlayer object
BaseballPlayer joe{};
// Assign it a name (we can do this directly because m_name is public)
joe.m_name = "Joe";
// Print out the name
std::cout << joe.getName() << '\n'; // use the getName() function we've acquired from the Person base class
return 0;
}
BaseballPlayer클래스가 Person class를 public 상속 받고 있음으로
joe.m_name과 joe.getName 등을 통해 member variable과 function에 접근할 수 있다
Why is this kind of inheritance useful?
base class로부터 inherit을 하면 우리는 base class의 정보를 derived class를 설계하는데 재설정할 필요가 없게 된다. 우리는 자동적으로 멤버 변수와 함수를 base클래스로부터 상속받게 되고 거기에 우리가 원하는 정보와 함수를 덧붙이면 된다
단순히 일을 줄여줄 뿐만 아니라 base 클래스를 업데이트 하게되면 이를 상속받은 모든 클래스에 반영이 되는 이점도 있다
Author And Source
이 문제에 관하여(17.2 Basic inheritance in C++), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ikmy0ung/17.2-Basic-inheritance-in-C저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)