1. C++ ?
C언어에 여러가지 기능을 추가하여 만든 프로그래밍 언어
2. C++ 특징
- 절차 지향적이며 구조적 프로그래밍 언어
- 객체 지향 프로그래밍 언어
- 일반화 프로그래밍 언어
3. C++ 프로그래밍
3.1. 프로그래밍 언어를 사용하여 작성한 소스파일은 실행파일로 변환되어야 실행 가능하다.
3.2. C++에서 소스파일 ~ 실행파일 생성 순서
3.2.1. 소스 파일(source file)의 작성
- C++을 사용하여 작성된 문서. 확장자는 .cpp
3.2.2. 선행처리기(preprocessor)에 의한 선행처리
- 소스파일에서 문자 #으로 시작하는 부분
- 선행처리기에 의해 처리됨
- 선행처리기는 코드를 생성하는 것이 아닌, 소스를 재구성하는 역할만 함
3.2.3. 컴파일러(compiler)에 의한 컴파일
- 컴퓨터는 0과 1만 이해할 수 있어서, C++을 기계어로 변환시키는 과정을 컴파일이라고 함.
- 컴파일이 완료되어 기계어로 변환된 파일을 오브젝트 파일이라고 한다.
- 오브젝트 파일의 확장자는 .o 또는 .obj
3.2.4. 링커(linker)에 의한 링크
- 오브젝트 파일은 운영체제와의 인터페이스를 담당하는 시동코드(start-up code)가 없다.
- 오브젝트 파일에는 C++ 표준 라이브러리 파일도 없다.
- (오브젝트 파일 + 시동코드 + 라이브러리) 파일을 합치는 작업을 링크라고 한다.
- 링크가 종료되면 새로운 실행 파일 또는 라이브러리 파일이 생성된다.
- 여러개의 소스 파일을 링크를 통해 하나의 실행 파일로 만드는 것을 분할 컴파일이라고 한다.
3.2.5. 실행 파일(executable file)의 생성
- 실행 파일의 확장자는 .exe
4. C++ 프로그램
4.1. C++ 기본 구조
#include 문
#define 문
int main()
{
명령문;
return 문;
}
4.2. main() 함수
- C++프로그램은 가장 먼저 main() 함수를 찾고, 그곳에서부터 실행을 시작한다.
- 모든 C++프로그램은 하나의 main() 함수를 가지고 있어야 한다.
- main() 함수가 없다면 C++ 컴파일러가 오류를 발생시킨다.
4.3. 명령문
- 모든 명령문은 세미콜론(;)으로 끝나야 한다.
4.4. 선행처리문
- #include문과 #define문은 모두 선행처리기에 의해 처리된다.
- #include문은 함수, 상수 등을 사용하기 위해 사용한다.
- C언어는 헤더 파일에 .h 확장자를 사용했지만, C++은 헤더 파일 확장자를 사용하지 않아도 된다.
- #define문은 함수나 상수를 단순화 해주는 매크로를 정의한다.
4.5. 네임스페이스
- C에는 없는 기능으로 동일한 이름에 대한 충돌을 방지하기 위해 사용한다.
- std::cout << TEXT; 에서 std:: 부분이다.
- 네임스페이스를 간단하게 사용하려면 using namespace std; 를 사용하면 네임스페이스를 안붙여도 사용가능.
5. iostream
5.1. 표준 입출력 클래스
- cout 객체로 출력을, cin 객체로 입력을 수행한다.
5.2. cout 객체
- 문법 : std::cout << 출력할데이터;
- 예시 : std::cout << "C++ 환영";
- 삽입연산자(<<)는 오른쪽에 위치한 데이터를 출력 스트림에 삽입한다.
5.3. cin 객체
- 문법 : std::cin >> 저장할변수;
- 예시 : cin >> age; // age 변수에 화면에 입력한 나이가 입력된다.
- 추출연산자(>>)는 오른쪽에 위치한 변수를 저장한다.
- 이때 cin 객체는 자동으로 사용자가 입력한 데이터를 오른쪽에 위치한 변수의 타입과 동일하게 변환한다.
5.4. C언어 표준 입출력 함수와의 차이점
- 삽입연산자(<<), 추출연산자(>>)로 데이터의 흐름을 나타내므로 좀 더 직관적이다.
출처 : http://www.tcpschool.com/cpp/intro
'프로그래밍 > C++' 카테고리의 다른 글
Part 1. C++로의 전환 (0) | 2022.06.01 |
---|---|
2. 타입 (0) | 2022.05.27 |
댓글