1.2.2 편의성 제공
C++언어에서는 신뢰성에 문제가 되지 않는 범위에서 사용자에게 많은 편의성을 제공하고 있습니다. 이번에는 C언어에서는 없었던 문법 사항 중에 사용자 편의성에 관한 부분을 다루어 봅시다.
- 태그 명이 형식 명으로 사용
C언어에서는 사용자 정의 형식의 변수를 선언할 때 명명하는 태그 명(struct, union, enum 뒤에 오는 명칭)을 바로 형식 명으로 사용할 수 없습니다. 이럴 때 typedef을 통해 형식 명을 정의하거나 혹은 struct Stu stu;와 같이 키워드와 태그 명을 붙여 변수를 선언해야 합니다. C++에서는 태그 명을 바로 형식 명으로 사용할 수가 있기 때문에 Stu stu;와 같은 표현을 할 수 있습니다.
태그 명을 형식 명으로 사용한 예 |
#include <string> //string.h와 다른 것입니다. using std::string; enum Gender { FEMALE, MALE };
struct StuInfo { int num; string name; };
void main() { Gender g = MALE; //태그 명인 Gender를 형식 명으로 사용 StuInfo si = {2,"홍길동"}; //태그 명인 StuInfo를 형식 명으로 사용 } |
- 원하는 위치에 변수 선언
C언어에서 변수 선언은 블록 시작 위치에서만 가능합니다. C++언어에서는 변수 선언에 대한 위치가 블록 중간에 오는 것을 허용합니다. 그렇다고 하더라도 반복문 내부에 선언하는 것은 바람직하지 않습니다. 반복문 내부에 변수를 선언하면 매 루프를 수행할 때마다 변수를 위한 메모리 할당과 해제가 반복되게 되기 때문입니다.
*C11 표준을 따라는 컴파일러에서 C언어도 변수 선언 위치는 자유롭습니다.
(모든 동영상 강의는 무료입니다.)
'언어 자료구조 알고리즘 > Escort C++' 카테고리의 다른 글
[C++] 2. 1 캡슐화란? (2) | 2016.04.15 |
---|---|
[C++] namespace (0) | 2016.04.15 |
[C++] 매개 변수명이 없는 입력 매개 변수 (0) | 2016.04.15 |
[C++] 디폴트 매개 변수 (0) | 2016.04.15 |
[C++] 함수 중복 정의(function overloading) (0) | 2016.04.15 |
[C++] 1. 2 클래스를 제외한 C언어와 다른 문법 사항 (레퍼런스 변수) (0) | 2016.04.15 |
[C++] 1. 2 클래스를 제외한 C언어와 다른 문법 사항(bool 형식의 제공) (0) | 2016.04.15 |
[C++] 1. 2 클래스를 제외한 C언어와 다른 문법 사항 (const 포인터, void 포인터) (0) | 2016.04.15 |
[C++] 1. 2 클래스를 제외한 C언어와 다른 문법 사항 (열거형) (2) | 2016.04.15 |
[C++] 1. C++에 들어가면서 (0) | 2016.04.15 |