본문 바로가기

C++

12. 클래스의 상속 , 오버로딩과 오버라이딩

1. 클래스의 상속

클래스 추가에서 아래 기본 클래스에 클래스를 넣어 간단하게 상속 가능!

 

2-1.상속 선언.

Test02.h

#pragma once
#include "Test01.h" // 부모클래스인 Test01을 #include로 선언

class Test02 : public Test01 //  : public Test01 이 문장으로 상속 완료
{
public :
};

1. 아무것도 하지 않음

2-2

Test02.cpp

#include "Test02.h"

1. 아무것도 넣지 않았다.

2-3

main

#include<iostream>
#inlcude"Test02.h" // 부모클래스인 01는 선언할 필요 없음

void main()
{
	Test02 t;
}

1. Test02의 객체를 선언. Test02엔 아무것도 넣지 않았지만
2. 자식 클래스가 나오면서 부모클래스도 참조하기 때문에 
3. 부모클래스인 Test01엔 생성자와 소멸자가 있고
4. 생성자 소멸자 각각에 std::cout << "Hi!"; , std::cout << "Bye!";

5. 생성자 소멸자가 실행되면서 Hi!Bye! 가 출력됨.

 

3.오버로딩 , 오버라이딩

 

Class Test01
{
public:
	
	void test01();


};


Class Test02 : public Test01
{
public:

	void test02();		//이것과
	void test02(int i);	//이것은 이름은 같지만 매개변수가 다른데 이걸 오버로드 라고 함.
	void test02(int a);	//매개변수 이름이 다르지만 위에것과 이건 오버로드가 아니라고 함.
	
    virtual void test01(); // 이게 오버라이드 라고 함
};

1.오버로딩 	: 같은 이름의 멤버함수 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술
			
2.오버라이딩	: 부모 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용하는 기술
		대충 부모 클래스가 가진것을 쓰지 않고 이걸 쓰겠다! 라고 하는 느낌

'C++' 카테고리의 다른 글

14.템플릿(template)  (0) 2021.05.24
13.getter, setter  (0) 2021.05.23
11. 클래스, 접근제어자 ,생성자 소멸자  (0) 2021.05.20
10. 문자열 함수  (0) 2021.05.20
9. (간단한)포인터  (0) 2021.05.20