본문 바로가기

C 프로젝트

C ++ 정리 하기 Ch.1

 

간단한 예제로 우선, 개념적인 부분을 정리합니다.

#include <iostream> - > C 와 헤더 선언 방식이 달라졌지요 !

using namespace std; - > STD 라는 이름공간을 사용한다 선언함으로써 입출력함수를 사용하기 편해 집니다.

int main(void)

{

return 0;

}

쳅터 1. 함수 오버로딩

함수 오버로딩이란 ? : 동일한 이름의 함수를 중복해서 정의하는 것 !

함수 오버로딩의 조건 은? : 매개 변수의 개수 혹은 타입이 일치하지 않아야 한다.

예를 들자면,  void FUNC(int num); , void FUNC( int num, char name );  과 같이

똑같은 함수 이름인데도, 매개변수가 다르면, 오버로딩해서 사용할 수 있다!

2. 디폴트 매개변수

-> 전달되지 않은 인자를 대신하기 위한 기본값이 설정되어 있는 변수 이다 .

예) int FUNC(int num = 0 ) {..}  FUNC함수 호출시 매개변수가 없으면 0으로 초기화된다.

디폴트 매개변수 VS 함수 오버로딩 상태를 만들지 말아라 !

디폴트매개변수 시, 인자값이 VOID 와 마찬가지가 되므로, 혼동을 초래할 수 있는 일은 삼가하는게 좋다.

 

쳅터2. 인- 라인 함수

C 언어의 define 매크로의 장점을 그대로 반영, 컴파일러가 처리한다.

즉 간단한 함수나, 변동될 수 있는 값을 매크로로 정의 하여, 컴파일 시 일괄 처리되도록 하는

프로그래머의 편의를 위한 함수 이다.

 

쳅터3. Const 키워드의 의미.

-> const 키워드는, 변수를 상수화 시키는 의미를 갖는다. 타 지역에서 변경될 소지가 있거나,

변경되어서는 안되는 변수를 지정 하여 상수화 시키는 키워드 이다.

키워드의 위치에 따라 의미가 달라지며,

const  int* ptr n;  = 맨 앞에 const 가 붙을 경우, 포인터가 가르키는 공간의 대상,

즉 데이터 값을 상수화 시킨다.

int* const  n : n이라는 포인터를 상수화 시킨다. 즉 가르키는 공간을 변경할 수 없다.

1. Stack 의 의미

-> 지역 변수, 매개 변수 , 컴파일 타임 크기 결정 됨

2. Heap 의 의미

-> 프로그래머 를 위해 할당된 공간, 런 타임 크기 결정

3. 데이터 영역의 의미

-> 전역변수, static 변수 , 코드 바이너리

 

Heap 은, 프로그래머가 할당 하여 사용할 수 있는 공간이다.

이러한 공간이 필요한 이유는, 컴파일 타임 때 크기를 결정하지 못 할 경우,

즉 런타임 중에 크기가 결정 될 메모리 공간을 올리기 위해 필요하다.