My Profile Photo

DongChanS's blog


수학과 학생의 개발일지


파이썬 유저를 위한 C++ (1) - 소개, iostream

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에서 이미지를 가져왔습니다.

21

  1. 소스파일을 전처리, 컴파일

    • # : 선행처리 지시문

      전처리 : #은 먼저 처리해야하는거니까 컴파일하기 좋게 순서를 바꿔줌.

    • 컴파일 : 기계어로 변환하는 작업, 오브젝트파일(.obj)로 바뀜.

  2. 링커가 시동코드, 표준 라이브러리 파일과 컴파일된 오브젝트 파일을 묶음

    • 시동코드(start-up code) : 운영체제와의 인터페이스를 담당하는 코드
  3. 묶은 파일은 실행파일(.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 (해제)

1-4. 최신 C++과 구버전 C++의 차이

C++ 11/14는 기존 C++ 98/03에서 몇 기능이 추가되었습니다.

참고링크 : http://tcpschool.com/cpp/cpp_intro_c11c14

2) iostream

C++ 표준 입출력 클래스 (파이썬의 sys 느낌인듯)

  • cout 객체 : C++에서 정의된 출력 stream

    ex) 문자열을 출력

    std::cout << "Expected Output"
    
    • stream : 데이터의 소스 -> 목적지까지 데이터를 이동시키는 통로
  • << : 삽입 연산자, stream에 데이터 삽입.

    • bit shift 연산자를 오버로딩
  • cin 객체 : C++에서 정의된 입력 stream

    ex) 키보드로 지정한 값을 age에 저장

    int age;
    std::cin >> age;
    
    • 장점 : 입출력 데이터 타입을 자동으로 변환

      ex) age는 정수 타입

      "15" -> 15

      "열다섯" -> 0 (숫자가 아니라는 의미)

comments powered by Disqus