클래스 정리 2

킴스코딩클럽·2023년 4월 17일
1

CS기초 시리즈

목록 보기
70/71
용어정리
UpCast파생 클래스에서 기반 클래스로 변환 안전하기 때문에 암시적인 변환도 가능함
DownCast기반 클래스에서 파생클래스로의 형변환 결과를 장담할 수 없기 때문에 런타임에서 체크가 필요함
static_cast암시적 형변환과 같지만 엄격한c++버전 명확하게 어떤 타입으로 변환할지 알아야함
static_cast<변환할 타입>() 반환값이 정상인지 확인이 필요함
dynamic_cast런타임에서 동적으로 타입을 변환하여 자동으로 체크해줌 클래스의 포인터/참조형에서만 사용 가능
런타임 형식 정보 사용 체크하기 가장 안전하지만 느림
PureVirtualFunction스스로 어떤 연산을 수행하지 않지만 파생클래스에게 일종의 규격을 만들어주는 가상함수
좀 더 엄격하게 그 자체로는 의미가 없고 반드시 상속받아서 정의해야함
선언 뒤에 =0을 붙여야한다
AbstractBaseClass순수 가상 함수가 하나라도 있는 클래스
약속된 규격이외의 어떤 역할도 하지않으며 추상클래스는 인스턴스를 만들 수 없다
파생 클래스에서 모든 순수 가상 함수를 오버라이딩해야한다
순수 가상 함수로만 이루어진 추상 클래스를 인터페이스 클래스라고 하고 앞에 I를 붙이기도 함
FriendClass친구로 지정할 클래스가 모든 멤버에 접근할 수 있게되는 클래스 정보를 공개할 쪽에서 친구로 지정해야함
FriendFunction클래스 전체가 아니라 특정 함수만 접근가능하도록 만듬
MemberFunctionPointer클래스의 멤버 함수를 가리키는 포인터 클래스의 인스턴스도 같이 전달해야함 instance.*pointer(parameter)
Namespace내부식별자(internal identifider: 변수 함수 클래스등의 이름 정의시 사용되는 구별 보통 변수명 함수명)
범위를 지정하는 별도로 제공되는 공간 namespace로 묶어서 사용하면 됨
Usingnamespace를 생략하고 바로 접근하도록 도와주는 키워드
헤더파일에 사용금지
template타입을 일반화해서 어떤 타입이든 처리할 수 있도록 만들고, 프로그래머가 원하는 타입으로 컴파일러가 처리해줌
타입을 신경쓰지 않고 일반화된 개념 구현이 가능
보통 auto는 변수의 타입을 추론함 template은 함수나 클래스를 일반화 시킬 때 사용
explicit명시적 생성자 의도하지 않는 자료형의 대입으로 형변환을 막기 위해 사용하는 키워드
profile
공부 기록용

0개의 댓글