728x90
- 객체 포인터 변수 : 객체의 주소 값을 저장하는 포인터 변수
- 클래스 포인터는 포인터 객체뿐만 아니라, 클래스를 상속하는 유도 클래스의 객체도 가리킬 수 있다
- C++에서, AAA형 포인터 변수는 AAA 객체 또는 AAA를 직접 혹은 간접적으로 상속하는 모든 객체를 가리킬 수 있다.(객체의 주소 값을 저장할 수 있다.)
- 함수 오버라이딩(Function Overriding) - 함수 재정의
- 오버라이딩이 된 기초 클래스의 함수는, 오버라이딩을 한 유도 클래스의 함수에 가려진다.
- C++ 컴파일러는 포인터 연산의 가능성 여부를 판단 할 때, 포인터의 자료형을 기준으로 판단하지, 실제 가리키는 객체의 자료형을 기준으로 판단하지 않는다.
- 포인터 형에 해당하는 클래스에 정의된 멤버에만 접근이 가능하다.
- 가상함수의 선언은 virtual 키워드의 선언을 통해서 이루어진다. 이렇게 선언되고 나면, 이 함수를 오버라이딩 하는 함수도 가상함수가 된다.
- 함수가 가상함수로 선언되면, 해당 함수호출 시, 포인터의 자료형을 기반으로 호출대상을 결정하지 않고, 포인터 변수가 실제로 가리키는 객체를 참조하여 호출의 대상을 결정한다.
- 클래스 중에서는 객체생성을 목적으로 정의되지 않는 클래스도 존재한다.
- ‘순수 가상함수’ 란 ‘함수의 몸체가 정의되지 않은 함수’ 를 의미한다
- 이를 표현하기 위해 ‘0의 대입’을 표시한다
- 0의 대입을 의미하는 것이 아니고 ‘명시적으로 몸체를 정의하지 않았음’을 컴파일러에게 알리는것
- 다형성(Polymorphism)
- 모습은 같은데 형태는 다르다
- 문장은 같은데 결과는 다르다
728x90
'언어 > C++' 카테고리의 다른 글
9. 연산자 오버로딩 (0) | 2023.02.02 |
---|---|
가상(Virtual)의 원리와 다중상속 (0) | 2023.01.31 |
7. 상속(Inheritance)의 이해 (0) | 2023.01.26 |
6. 클래스의 완성 (0) | 2023.01.19 |
5. 연산자 다중정의 (0) | 2023.01.17 |