1. namespace

- 같은 이름으로 구현된 함수를 구분하기 위해 이름공간을 따로 만들어 놓은 것.
- 함수를 호출하기 위해 해당 함수가 속해있는 namespace를 범위지정 연산자(::)로 지정해 준 다음 함수를 호출한다.

ex) Morning::hello();


2. using 키워드

- 자주 호출되는 함수의 namespace를 using으로 선언하여 범위지정 연산자(::)를 사용하지 않고, 함수를 호출할 수 있다.
- std표준 라이브러리 내의 함수를 모두 namespace로 정의할 수도 있다.

ex1) using namespace Morning;     // 선언
       hello();  // 범위지정연산자를 생략하고, 함수만 호출하여 사용

ex2) using namespace std;     // std표준라이브러리 내의 모든 함수 정의


3. 입출력 연산자

- 출력 연산자 : C언어의 "printf" / C++의 "<<" 모두 사용 가능하며 "cout"과 함께 사용하여 문자열을 출력 할 수 있다.
ex) std::cout<<"Beloved"<<std::endl;     // Beloved 출력 (endl은 개행)
      std::cout<<"결과는"<<result<<"입니다"<<std::endl;     // result변수 값 출력

- 입력 연산자 : C언어의 "scanf" / C++의 ">>" 모두 사용 가능하며 "cin"과 함께 사용하여 값을 입력 받을 수 있다.
ex) int val;     // 변수선언
     std::cin>>val;     // 변수값 입력
     std::cout<<val<<std::endl;     // 입력받은 val 변수값 출력


4. 지역변수 / 전역번수 사용

- 지역번수 사용 : 함수명만 사용
- 전역변수 사용 : 범위지정 연산자(::)를 붙여서 사용

ex) value라는 지역변수와 전역변수가 있을때,
     std::cout<<value<<std::endl;     // 지역변수 출력
     std::cout<<::value<<std::endl;     // 전역변수 출력 


5. 메모리 동적 할당 / 해제

- C 언어에서는 메모리를 동적으로 할당 받기 위해 "malloc" 함수를 사용하고, 메모리를 반납하기 위해 "free"함수를 사용한다.
- C++ 언어에서는 malloc 함수에 대응하는 것으로 new 연산자를 제공하고, free 함수에 대응하는 것으로 "delete"를 제공한다.
- C++ 에서는 둘다 사용 가능하다.

ex) C언어에서의 메모리 할당 / 해제
      int size=5;
      int* arr=(int*)malloc(sizeof(int)* size);     // 동적 메모리 할당
      free(arr);     // 할당된 메모리 제거

ex) C++언어에서의 메모리 할당 / 해제
      int* arr=new int;     // 메모리 생성
      delete arr;     // 동적 메모리 제거

      int size=5;
      int* arr=new int[size];     // int형 동적 메모리 할당
      delete []arr;     // 배열로 생성된 동적 메모리 제거


6. new 연산자의 NULL포인터 리턴

- 동적 메모리 할당에 실패할 경우 NULL 포인터를 리턴하게 되는데 예외처리를 통해 안정적인 프로그램을 만들 수 있다.

ex) using namespace std;

      int main()
      {
      int size=5;
      int* arr=new new[size];
      if(arr==NULL)
      {
      cout<<"동적 메모리 할당 실패"<<endl;
      return -1;
      }
      cout<<"동적 메모리 할당 성공"<<endl;
      delete []arr;
      return 0;
      }


by 민트앤라떼 2011. 6. 2. 10:28