글 써놓고 완료를 하지 않아서 다 날아갔다...

가장 쓴게 많은 부분이였는데..
복습도 할 겸 시간 날때 다시 듣고 써 넣어야겠다.

우선 대충 생각나는거 적어본다..

 

[ 상속성 ]

- 상속에 관한 내용.

- Derived 클래스에 Base 클래스 멤버 함수를 오버라이딩 한 함수가 있으면 그 함수 호출 해준다( 자신과 가장 가까운 )

 

Knight(int _hp): hp(_hp)
// ....
// 선처리 영역 이라고들 부른다.
// ....
{
	생성자 내부 코드..
}

- 선처리 영역에서 ( 생성자 ( { } ) 코드 부분을 실행하기 전에 컴파일러가 선처리로 상속받은 Base 클래스의 기본 생성자를 호출한다.

C++ 책에서는 Base 클래스의 생성자가 먼저 호출된다고 하는데, 정확히 말하면 조금 다르게 동작한다. 

( disassembler 를 통해 확인해보면 알 수 있다. )

 

 

만약 Base 클래스의 기본 생성자를 호출하고 싶지 않다면 

: 초기화 리스트를 통해 Base 클래스의 다른 생성자를 명시적으로 호출해주면 된다. 

Knight(int stamina) : Player(100)  // 이렇게 Base 클래스의 생성자를 지정해주면 기본 생성자 호출X
// 선처리 영역..
{
	생성자 내부 함수 실행..
}

 


[ 은닉성 ( Data Hiding) ] = 캡슐화 ( Encapsulation)

- (멤버) 접근 지정자 : public,  protected,  private

 

 

- 상속 접근 지정자 : 상속 할때 앞에 public , protected , private 지정하는거

( 아무것도 안쓰고 상속하면 default 는 private 이다. )

-> 다음 세대한테 부모님의 유산을 어떻게 물려줄까?

부모님한테 물려 받은 유산을 꼭 나의 자손들한테도 똑같이 물려줘야 되지는 않음.

( 우리들 프로그래머 인생에서 아마 public 만 쓸거라고 말함, 강사님도 현재 살면서 protected 와 private 상속을 써본적이 없다고 함 )

 

public : 부모님 유산 설계 그대로!

   public -> public , protected -> protected , 부모가 private 로 넘겨준 함수는 여전히 private 이기 때문에 고려 대상 이 아니다. 

 

protected : 내 자손들 한테만 물려 줄거야!

  public -> protected , protected -> protected

 

private : 나까지만 잘 쓰고 자손들한테는 아예 안 물려 줄꺼야! 

  public -> private , protected -> private

 

class Base {
public:
	void BaseFunc() {
			
	}
};

class Derived1 : private Base {
public:
	void DerivedFunc() {

	}
};
class Derived2 : private Derived1 {
public:
	void DerivedFunc2() {
    	// Derived1 을 상속 받는 Derived2 는 내부에서는 Derived1 의 함수 DerivedFunc 을 사용할 수 있지만
		DerivedFunc(); 
	}
};

int main() {

	Derived2 d2;
    // 이렇게 외부에서는 사용할 수 없다. 상속 지정자를 private로 했기때문에 DerivedFunc() 은 private로 바뀌어서 Dervied2로 상속되는 것이다.
	d2.DerivedFunc();  

	return 0;
}

 

https://thrillfighter.tistory.com/531      조금더 알아보고 싶어서 찾아본 블로그 ( 설명 잘해 놓으심 )

 


[ 다형성 #1 ]

- ploy + morphism  

[ 다형성 #2 ]

[ 초기화 리스트 ]

 

Q. 우선 초기화를 왜 하는가?

- 생성자를 통한 초기화

- 초기화 리스트를 통한 초기화

- c++11 에 나온 초기화 방법

[ 연산자 오버로딩#1 ]

[ 연산자 오버로딩#2 ]

- 복사 생성자, 복사 대입 연산자

 

'C++과 언리얼로 만드는 게임 개발 > Part1. C++ 문법' 카테고리의 다른 글

Day8 - ① 동적할당 / ★타입 변환★( 61.60% )  (0) 2022.03.31
Day7 ( 54.46% )  (0) 2022.03.30
Day5 ( 47.32% )  (0) 2022.03.28
Day4 ( 42.85% )  (0) 2022.03.25
Day3 ( 37.50% )  (0) 2022.03.24

+ Recent posts