글
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;
}
RECENT COMMENT