열혈강의 1장
1. 함수 오버로딩
오버로딩의 조건 1 : 매개변수의 타입
오버로딩의 조건 2 : 매개변수의 개수
오버로딩의 조건 3 : const냐 아니냐에 따라
void fct(int n) const {}
void fct(int n){}
함수의 반환 타입으로는 함수 오버로딩이 되지 않는다.
2. in-line 함수
함수를 매크로로 정의하면 전처리기에 의해서 함수 호출 문장이
함수의 몸체 부분으로 완전히 대치돼 버린다. --> 함수 호출과정이 사라짐 --> 치환의 개념
(함수 호출은 스택 메모리 공간의 할당과 많은 시간이 요구된다.)
매크로 함수는 자료형의 선언이 필요없다.
-> C++에서는 inline 키워드로 인라인화 할 수 있다.
-> 매크로 함수의 단점 : 함수구현이 까다롭다. 재귀함수 구현 불가
디버깅이 어렵다. 함수의 크기가 크면 프로그램의 크기도 커진다. 왜?
--> 치환의 개념이기 때문에 함수가 호출되는 것이 아니라
코드가 삽입 되는 것! 때문에 사용할 때마다 코드의 크기가 증가
3. namespace
::val -> 전역변수에 접근하라.
int val;
int main(){
int val;
val = 1; ->> 지역변수에 접근
::val = 1; ->> 전역변수에 접근
}
전처리기 란?
컴파일 하기 전 일련의 작업지시 명령으로 컴파일 되기 전의 준비작업을 수행
'C++' 카테고리의 다른 글
[C++] virtual 소멸자, virtual table // 열혈강의 (0) | 2016.12.05 |
---|---|
[C++] 상속에 대하여 // 열혈강의 (0) | 2016.12.01 |
[C++] 기초4 // 열혈강의 (0) | 2016.12.01 |
[C++] 기초3 // 열혈강의 (0) | 2016.11.30 |
[C++] 기초2 // 열혈강의 (0) | 2016.11.30 |