C++ study(11)

김혜원·2023년 2월 3일
0

c++study

목록 보기
11/11
post-thumbnail

class의 상속성

상속성(inheritance) 은 객체 지향 프로그램에서 굉장히 중요한 특징이다!!
어떤 class A가 있을 때, A로부터 상속을 받은 class B가 있다면 B를 자식 class, A를 부모 class라고 부른다. B는 A가 가지고 있는 멤버를 모두 가지고 있다.

간단한 예제

#include <iostream>
using namespace std;

class Parent
{
public:
	int n;
};
class Child : public Parent
{
public:
	double f;
};

int main()
{

	Parent P;
	Child C;
	P.n = 3;
	C.n = 5;
	C.f = 4.23;

	return 0;
}

상속을 받으면 부모 class의 멤버를 갖게 되지만, 완전히 모든 멤버를 다 가지는 건 아니다.
상속되지 않는 것으로는 '생성자', '소멸자', '대입 연산자', '복사 생성자' 네 가지가 있다.

생성자의 경우 class에 대해 하나 이상 만들지 않으면 자동으로 기본 생성자가 생성된다. 부모 class에는 생성자가 정의되었어도 자식 class에는 정의된 생성자가 없다면 자식 class에서는 자동으로 기본 생성자가 정의된다.

  • 자식 class의 생성자는 반드시 부모 class의 생성자를 반드시 하나 부른다.

e.g.

#include <iostream>
using namespace std;

class Parent
{
public:
	Parent()
	{
		cout << "Parent class constructor" << endl;
	}
};
class Child : public Parent
{
public:
	Child()
	{
		cout << "Child class constructor" << endl;
	}
};

int main()
{

	Child C;

	return 0;
}

결과로는 둘 모두 실행되어 parent class, child class 순서대로 출력된다.

0개의 댓글