열혈강의 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

+ Recent posts