클래스 심화

Final 클래스

final로 선언된 클래스는 더이상 상속 할 수 없다.

class A{};
class B : A {};
class C final : B {}; // final 클래스 C
class D : C {}; // 에러 C클래스는 더이상 상속할수 없다.

final 은 키워드가 아니고 식별자 이므로 변수명 등으로 사용가능하나 사용하지 않는것이 좋음!

이름 은폐(name hiding)

동일한 이름의 함수가 어떠한 영역에 선언되면 선언한 영역의 바깥영역의 함수는 은폐된다.

일반적인 다중정의

#include <iostream>
using namespace std;

void f(int x) {
	cout << "f(int x) --> " << x << endl;
}
void f(double x) {
	cout << "f(double x) --> " << x << endl;
}
int main() {
	f(10);
	f(20.0);
}

전역함수를 가리는 함수

main 함수내 f 함수를 선언하여 전역함수 f를 가리게

형변환이 되지 않는 경우에는 함수 호출을 할 수 없음

클래스 상속에서 이름 은폐

Last updated