C++2011.03.06 19:51



안녕하세요 여러분~ 이제 C 언어에 이어서 C++ 강좌를 연재하게 된 Psi 입니다. 저의 C++ 강좌는 여러분이 C 언어를 충분히 이해하고 사용하고 있다는 것을 가정으로 진도를 나갈 것입니다. 


물론 C 언어를 굳이 배우지 않아도 C++ 를 먼저 배워도 되고,  C 언어와 C++ 이 매우 다르기 때문에 '무엇을 먼저 배워야 하냐' 라는 의미는 크게 중요하지 않습니다. 하지만 C++ 이 C 의 기초적인 문법을 그대로 사용하고 있고, 제가 강좌를 C 언어를 먼저 완성하였기 때문에 독자 타겟을 'C 언어 문법을 어느 정도 아는 사람' 으로 잡았을 뿐입니다.


다시 말해 구질 구질하게 기초적인 for 문 사용법, 포인터와 같은 것들은 C++ 강좌에서 다루지 않겠다는 의미 입니다. 


간혹 C++ 이 C 언어 확장팩(?) 개념이라고 생각하시는 분들이 있는데 이건 역시 사실이 아닙니다. 물론 초기에는 C++ 이름이 C with classes 였을 정도로 그냥 C 언어에 몇 가지 정도를 더 얹은 정도였습니다. 하지만 이제는 C++ 과 C 언어가 '둘이 같은 언어야?' 라고 말할 수 있을 정도로 매우 달라졌습니다. 


   강좌 수칙  
 

제 강좌를 들으시면서 지켜야 할 수칙들은 다음과 같습니다.

1. 강좌는 적어도 한 번 꼭 정독해보기

2. 모르는 것은 꼭 답글 달기

3. 답글로 질문하기 꺼린 내용은 kev0960@gmail.com 으로 메일 보내기!

4. '생각 해보기' 에 적어도 30 분 이상은 투자하기

5. 이전 강좌를 완벽히 이해했다 싶지 않으면 다음 강좌로 넘어가지 말기

입니다. 위 수칙 중에서 무엇보다도 중요한 것은 바로 모르는 내용은 꼭 답글을 다는 것입니다 :) 


세상에서 어리석은 질문은 없습니다. 여러분들이 궁금하거나 이상한 내용, 마음에 와닿지 않는 내용들을 질문하지 않고 다음강좌로 넘어가는 한 여러분의 실력은 결코 향상될 수 없을 것입니다.


꼭 궁금한 것들은 댓글로 남겨주시고, 공개적으로 남기기 꺼리면 비밀글로 남기거나 정 그렇다면 mail 로 보내주시면 감사하겠습니다. 그러면 제가 확인하는대로 최대한 빨리 답글로 보내드릴께요 ㅎ 



그렇다면 이제 강좌를 보러갈 시간이 되었네요~

   C++ 강좌 총 목록 
 

1 - 1. 자~ C++ 의 세계로
이번 강좌에는 Visual Studio 2010 을 설치하고 첫번째 C++ 프로그램을 만들어본다.

1 - 2. 첫 C++ 프로그램 분석하기
이번 강좌에서는 첫번째 C++ 에 관한 상세한 분석 및 namespace (이름 공간) 에 대해 알아본다

2 - 1. C++ 은 C 친구 - C 와 공통점
기초적인 변수의 정의, if, else, switch for, while, 배열 등등

2 - 2. C++ 은 C 친구일까?
함수의 정의, 레퍼런스 등등

3.  C++ 의 세계로 오신 것을 환영합니다(new, delete)
new, delete, 그리고 왜 객체 지향 프로그래밍을 해야 하는가?

4 - 1. 이 세상은 객체로 이루어져 있다
객체 지향 프로그래밍은 무엇인가?, 객체와 클래스, 접근 제어자

4 - 2. 클래스의 세계로 오신 것을 환영합니다 (함수의 오버로딩, 생성자)
함수의 오버로딩(function overloading), 생성자(constructor), 디폴트 생성자(default constructor)

4 - 3. 스타크래프트를 만들자 ① (복사 생성자, 소멸자)
복사 생성자(copy constructor), 얕은 복사, 깊은 복사, 소멸자(destructor)

4 - 4. 스타크래프트를 만들자 ② (const, static)
생성자 초기화 리스트(initializer list), const, static 멤버 변수, 레퍼런스를 리턴하는 함수, this 포인터, const 멤버함수


4 - 5. 내가 만드는 String 클래스 
직접 String 클래스를 제작해서 여태까지 클래스에 대해 배웠던 내용을 복습하며 정리한다. 


5 - 1. 내가 만든 연산자 - 연산자 오버로딩
연산자 오버로딩의 기초적인 개념 정리와 함께, 산술, 비교, 대입 연산자의 오버로딩을 수행한다.


5 - 2. 입출력, 첨자, 타입변환, 증감 연산자 오버로딩
멤버함수가 아닌 표현의 연산자 오버로딩과 함께, 입출력 연산자, 첨자 연산자([]), 타입 변환 연산자, 증감 연산자(++, --)들의 오버로딩에 대해 알아본다.


5 - 3. 연산자 오버로딩 프로젝트 - N 차원 배열
C++ 스타일의 캐스팅, 디폴트 인자(default argument), 반복자(iterator), 그리고 N 차원 배열 제작에 대해 알아본다.


6 - 1. C++ 표준 문자열 & 부모의 것을 물려쓰자 - 상속

C++ 표준 문자열, 상속 (inheritance), protected 키워드에 대해 알아본다. 


6 - 2. 가상(virtual) 함수와 다형성
is-a 와 has-a 관계. 오버라이딩, virtual 키워드, 가상(virtual) 함수, 다형성(polymorphism)


6 - 3. 가상함수와 상속에 관련한 잡다한 내용들

virtual 소멸자, 가상 함수 테이블, 다중 상속, 가상 상속


7 - 1. C++ 에서의 입출력 (istream, ostream)
C++ 입출력 라이브러리, istream, ostream, streambuf 에 대해 알아본다. 


7 - 2. C++ 파일 입출력 (ifstream, ofstream, stringstream)
C++ 에서의 파일 입출력, stringstream 과 그 활용에 대해 알아본다. 


8 - 1. Excel 만들기 프로젝트 1부
여태까지 배운 내용을 총 동원 하여 조그만 엑셀을 만드는 프로젝트이다.


8 - 2. Excel 만들기 프로젝트 2부
이전 강좌에서 이어서 엑셀 만들기를 진행한다. 중위 표기법과 후위 표기법에 대해 다룬다.


9 - 1. 코드를 찍어내는 틀 - C++ 템플릿(Template)
템플릿이란 무엇인가?, 함수 템플릿, 클래스 템플릿. 템플릿 인스턴스화, 템플릿 특수화. 함수 객체 (Functor)

9 - 2. 템플릿 메타 프로그래밍 (Template Meta Programming)
타입이 아닌 인자를 받는 템플릿, 템플릿 메타 프로그래밍

9 - 3. 템플릿 메타 프로그래밍 2 (Template Meta Programming)
TMP 마무리, 의존 타입(dependent type), auto 키워드


10 - 1. C++ 의 표준 템플릿 라이브러리 (STL) - 시퀀스 컨테이너
시퀀스 컨테이너 (vector, list, deque) 와 반복자(iterator)

10 - 2. C++ 의 표준 템플릿 라이브러리 (STL) - 연관 컨테이너
set, multiset, map, multimap, unordered_set, unordered_map 등에 대해 배웁니다.  

10 - 3. C++ STL - 알고리즘(algorithm)
STL 알고리즘 라이브러리, 람다 함수, sort, partial_sort, stable_sort, find, erase, erase_if, any_of, all_of

10 - 4. STL 알고리즘들

11 - 1. 우측값 레퍼런스와 이동 생성자

복사 생략 (copy elision), C++ 11 에 추가된 우측값 레퍼런스 (rvalue reference)와 이동 생성자 (move constructor)


11 - 2. Move 문법 (move semantics) 과 완벽한 전달 (perfect forwarding)

move semantics, 완벽한 전달 (perfect forwarding), 레퍼런스 접힘 규칙 (reference collapsing rule)


11 - 3. C++ 스마트 포인터 (unique_ptr, shared_ptr, weak_ptr)

12 - 1. boost 의 시대가 왔다 (filesystem, math)

12 - 2
. boost 의 시대가 왔다 (thread)

13. 따끈따끈한 C++0x







Posted by Psi

댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. 읭?

    수학쓰는 파일좀 강의해주시면... 안되나요?
    키와 몸무게 넣고 정상인지 아닌지 하는거라던지요 ㅎㅎ

    2011.11.12 23:39 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 윤여민

      강의등록자가아닙니다.(오해금지!!!!!!!!!)
      scanf("%d &num1");/*수입력한후 변수에저장하기(num1은변수이름입니다.*/
      위문자(?)를이용한후계산하세요.

      2011.12.28 14:47 신고 [ ADDR : EDIT/ DEL ]
    • 넵;; 알겠습니다

      2011.12.31 13:56 신고 [ ADDR : EDIT/ DEL ]
  3. 잘모르겠어요ㅠㅠ초딩도알아들을수있다면얼마나좋을까그것도나는이해가빨라서고딩수학하고있는데ㅠㅠ조금만이해할수있게해주시면안되나요??

    2012.01.26 12:43 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 곰돌

      제가 한마디 해도 될까요?
      c언어를 아십니까?

      2012.02.06 20:02 신고 [ ADDR : EDIT/ DEL ]
    • 어렵다면 어디가 어려운지 말씀해주셔야죠 :)

      2012.02.28 19:28 신고 [ ADDR : EDIT/ DEL ]
  4. 정말 대단하시네요. 감사합니다. C 언어는 정말 잘 읽고 있습니다. 제 tistory 에 주소 좀 복사해 갈게요. 자주 오겠습니다.

    2012.08.31 15:48 신고 [ ADDR : EDIT/ DEL : REPLY ]
  5. 늅늅이

    저 학과에서 바로 c++배우던데 바로 c++들으면 좀 문제가잇을까욧 ..? 배열과 포인터부분이 너무 어렵네요

    2013.09.14 14:46 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • C++ 를 바로 배운다는게 아마 C 내용을 먼저 다 다루고 진행할 것입니다. 걱정 안하셔도되요 :) 혹시라도 이해가 잘 안가시면 제 C 강좌를 보시면 됩니다.

      2014.07.29 01:08 신고 [ ADDR : EDIT/ DEL ]
  6. bada6684

    넘 실력이 뛰어나셔서
    공유좀 할께욤 카폐에 만은강좌 부탁드려요~~

    2013.12.27 15:42 신고 [ ADDR : EDIT/ DEL : REPLY ]
  7. 오오

    2011년 이후 강의 중단하신건가요 ㅠㅠㅠㅠ c도 psi님에게서 배웟는데 흙 ㅠ

    2014.07.08 19:46 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • C 언어 강좌는 완결이 되었습니다. 현재 C++ 강좌를 올리기 위해 노력중입니다.

      2014.07.29 01:08 신고 [ ADDR : EDIT/ DEL ]
  8. 사랑합니다 Psi님

    2014.09.29 01:21 신고 [ ADDR : EDIT/ DEL : REPLY ]
  9. hyun

    템플릿을 언제나오나용 PSI님~~~

    2014.12.02 11:51 신고 [ ADDR : EDIT/ DEL : REPLY ]
  10. 김베컴

    올해 상반기 안에 8-2 or 8-3 까지 강의가 나왔으면 좋겠네요 설명 방식이 저에게 딱 맞는거 같아서 c언어 부분 괜찮게 봤거든요 ㅠㅠ

    2015.01.30 04:18 신고 [ ADDR : EDIT/ DEL : REPLY ]
  11. 저에게 딱 맞는 강의들 이네요!! 다음편 기다리겠습니다 ㅎㅎㅎ 파이팅!!

    2015.02.05 08:40 신고 [ ADDR : EDIT/ DEL : REPLY ]
  12. 이위트나

    부스트에 대한 내용을 빨리 보고싶군요 ㅎㅎ
    많이 배우고 있습니다 감사합니다 싸이님.
    C강좌도 책으로 만들어 소장중이에요.

    2015.02.05 13:59 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 저도 빨리 C++ 강좌를 완결해서 pdf 로 만들고 싶습니다~!

      2016.08.15 17:58 신고 [ ADDR : EDIT/ DEL ]
  13. 연구자

    감사합니다. 훌륭하십니다. 감탄^^

    2015.02.27 09:01 신고 [ ADDR : EDIT/ DEL : REPLY ]
  14. 흐음

    잘부탁드립니다~

    2015.07.27 10:28 신고 [ ADDR : EDIT/ DEL : REPLY ]
  15. 안녕하세요 c++강좌 잘 보고있습니다 감사합니다 ^^

    2016.02.20 16:05 신고 [ ADDR : EDIT/ DEL : REPLY ]
  16. 명강의입니다

    큰도움 되고 있습니다. 정말 감사합니다! 나중에 꼭 도서로 출간되면 좋겠네요^^;

    2016.05.10 17:50 신고 [ ADDR : EDIT/ DEL : REPLY ]
  17. BlasterDinray

    저기 있는 목차를 다 배우면 c++의 어디까지 끝넨건가요?
    c++은 창시자도 끝이 없다고 하던데..

    2016.07.28 21:23 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 그래도 C++ 의 기초 정도는 다질 수 있도록 강좌를 완성할 계획입니다.

      2016.08.15 17:56 신고 [ ADDR : EDIT/ DEL ]
  18. 아..

    귀중한 자료들이네요. 이런 자료들 덕에 인터넷 세상이 풍족해집니다. 감사한 마음으로 읽겠습니다.

    2016.09.25 13:07 신고 [ ADDR : EDIT/ DEL : REPLY ]
  19. 우동이형

    정말 감사하게 강좌 잘 보고있습니다! 뒷부분 강의도 어서 나왔으면 좋겠네요 항상 건강하시고 힘내세요 화이팅!

    2016.12.11 21:46 신고 [ ADDR : EDIT/ DEL : REPLY ]
  20. 정환류

    항상 응원하고 있습니다. 파이팅하셔요!

    2017.07.01 15:03 신고 [ ADDR : EDIT/ DEL : REPLY ]
  21. 공부하자아아

    좋은 자료들 감사합니다 c언어 이후 c++도 자주 찾아뵐깨요

    2018.04.16 21:42 신고 [ ADDR : EDIT/ DEL : REPLY ]