C++을 공부하기 위해서 여러 레퍼런스를 찾아봤는데, 생각보다 잘 소개된 자료가 없었습니다.
그러다가 http://tcpschool.com/cpp/intro 라는 좋은 자료를 발견해서 이 자료를 참고해서 C++를 정리하려고 합니다.
파이썬유저 기준이기 때문에 기본적인 개념(자료형, 제어문…)같은 이야기는 최대한 빼고 간결하게 글을 적으려고 합니다.
하지만.. 적다보니 파이썬 뿐만 아니라 자바, 자바스크립트 이야기도 들어가있긴하네요..
1) C++ 란?
1-1. C++의 특징
- C 표준 라이브러리 사용 가능, C 주요 문법을 대부분 차용함.
- 하지만, 객체지향적인 부분도 가지고 있음.
- 강력한 Class 라이브러리들이 많이 있다
1-2. C++ 프로그래밍
http://tcpschool.com/cpp/cpp_intro_programming에서 이미지를 가져왔습니다.
-
소스파일을 전처리, 컴파일
-
#
: 선행처리 지시문전처리 :
#
은 먼저 처리해야하는거니까 컴파일하기 좋게 순서를 바꿔줌. -
컴파일 : 기계어로 변환하는 작업, 오브젝트파일(
.obj
)로 바뀜.
-
-
링커가 시동코드, 표준 라이브러리 파일과 컴파일된 오브젝트 파일을 묶음
- 시동코드(start-up code) : 운영체제와의 인터페이스를 담당하는 코드
-
묶은 파일은 실행파일(
.exe
)로 바뀜.
1-3. 기본적인 개념들
-
main 함수
-
statement (명령문) : 일반적인 명령
-
return 문 : 함수를 [호출한 곳]으로 [값]을 반환하는 역할
-
preprocess 문 :
#include <iostream>
,#define 상수
-
#include
: 헤더파일의 내용을 현재 파일에 포함시키자! -
헤더파일 확장자는 두 가지로 사용가능
#include <math.h> // C언어에서는 이 스타일만 허용됨. #include <cmath>
-
-
namespace : 이름이 기억되는 영역
-
전역변수, 지역변수 같은 개념을 노골적으로 적용한 느낌이라고 보면 됨.
ex)
int main(){ std::cout << "Good!"; return 0; }
std::
를 통해서 std namespace에 있는 cout에 접근한 것.
-
-
comment
- Visual studio에서 단축키 :
Ctrl + K + C
(생성),Ctrl + K + U
(해제)
- Visual studio에서 단축키 :
1-4. 최신 C++과 구버전 C++의 차이
C++ 11/14는 기존 C++ 98/03에서 몇 기능이 추가되었습니다.
참고링크 : http://tcpschool.com/cpp/cpp_intro_c11c14
2) iostream
C++ 표준 입출력 클래스 (파이썬의 sys 느낌인듯)
-
cout
객체 : C++에서 정의된 출력 streamex) 문자열을 출력
std::cout << "Expected Output"
- stream : 데이터의 소스 -> 목적지까지 데이터를 이동시키는 통로
-
<<
: 삽입 연산자, stream에 데이터 삽입.- bit shift 연산자를 오버로딩
-
cin
객체 : C++에서 정의된 입력 streamex) 키보드로 지정한 값을 age에 저장
int age; std::cin >> age;
-
장점 : 입출력 데이터 타입을 자동으로 변환
ex) age는 정수 타입
"15"
-> 15"열다섯"
-> 0 (숫자가 아니라는 의미)
-