본문 바로가기
교육관련/한화비전 VEDA 수강일지

[VEDA 1기 수강일지] 10일차 - C++ 기초 (3) : 오버로딩, static, 상속

by 김수효 2024. 7. 26.
수강한 개념

 

함수 오버로딩

- 리턴타입은 상관 x, 호출시 인자 타입이나 개수에 따라 선택

-  ex. 생성자 함수 오버로딩

- 소멸자 함수는 중복불가

 

디폴트 매개변수

- 뒤에서부터 선언

 

static 멤버 / non-static 멤버

- static 함수는 반드시 class 밖에서 초기화 해줘야함 -> 메모리 별도 할당받기 때문

- static 멤버함수 -> 보통 static  멤버변수를 제어하기 위해 사용

- 전역 변수나 전역 함수처럼 쓰고싶은데 특정 클래스에서만 사용이 가능하도록 하고싶을때

- 객체 사이에 공유 변수를 만들고자 할때 (객체간의 통신)

- static 멤버함수에서는 this  사용 불가

※헤더파일에서 static 멤버변수 초기화를 했더니 링크 오류 LNK2005 발생.

-> cpp 파일 두개에서 헤더파일을 include해서 중복 선언 발생

-> 변수 선언 부분을 cpp 파일로 이동해서 해결

 

프렌드

- 클래스 외부함수를 프렌드로 선언하면 클래스 내 멤버들을 자유롭게 접근 가능

- 캡슐화 원칙 위배 -> 꼭 필요할때만 사용

+ 전방선언문 : 특정 클래스가 있다는 것을 알려주는 용도

 

연산자 오버로딩

- 연산자 함수 operator

- 연산자 중복 : 참조자 이용 (this를 이용해 리턴타입을 포인터로)

 

입출력 연산자 오버로딩

- cout << a -> 이거를 전역함수로 떼어왔다고 생각하면 됨

- 참조를 리턴하는 << 연산자

ostream& operator<<(ostream& out,Circle& obj)
{
	out << obj.radius;
	return out;
}

 

상속

- 업 캐스팅

ㄴ 파생클래스의 객체를 기본 클래스의 객체처럼 다룰 수 있게 함

ㄴ 파생클래스 포인터 p, 기본클래스 포인터 mp, 파생클래스 객체 po

 ㄴ mp -> p -> po

 

- 다운 캐스팅

ㄴ 형변환이 필요함

ㄴ 업캐스팅 ... 하 모르겠다 

- 생성자 호출 순서 : 부모클래스부터 순차적으로 생성, 자식클래스부터 소멸

 

문제 구현 / 개선방안

 

 

 

기타 사항

 

 


VEDA 바로가기 : www.vedacademy.co.kr

VEDA(한화비전 아카데미) 영상으로 확인하기 : https://url.kr/zy9afd

본 후기는 VEDA(한화비전 아카데미) 1기 학습 기록으로 작성되었습니다.

댓글