1. 개요

  • Sharpest에서 이어지는 후속 C++ 스터디.
    • 스터디 내부에서 C++에 대한 수요가 있어서, 전환해서 진행하게 되었습니다.
  • 제목에 오타가 있지만, 뭔가 그럴싸해서 유지하기로 결정했습니다.
  • 느리지만 날카롭게 C++을 공부해봅시다!

2. 진행

  • ppt 파일을 통해 진행합니다.
  • 매주 화요일 오후 8시 ~ 오후 10시에 진행합니다.
    • 진행 상황에 따라 연장해서 진행될 수도 있습니다.
  • 2019년 여름방학 한정으로 매주 화요일 오후 6시부터 진행됩니다.
  • C언어와 겹치는 부분은 상황에 따라 생략될 수도 있습니다.
  • 현재는 사정상 오프라인으로 진행하지 않고, 온라인으로 자료 공유 + 자유롭게 질답하는 방법으로 진행하고 있습니다.

3. 참가자

4. 목표

  • C++ 언어의 문법을 공부합니다.
  • 언뜻 지나치기 쉬웠던 부분, 코드 작성 시 함정을 피하는 방법을 공부합니다.
  • 상황에 따른 언어 사용 전략, 수행 원리 등을 공부합니다.

5. 목차

5.1. Part 1. C++ as C extension

  • 1. Introduction
    • C++에 대한 간략한 소개
    • Hello, World!
  • 2. Basic Statement
    • 주석
    • 제어문
  • 3. Primitive Types
    • Primitive Types
    • Primitive Type 간 변환
    • 상수 정의
  • 4. Compound Types
    • 참조자
    • 포인터
    • 참조자 vs 포인터
  • 5. Const & Constexpr
    • const
    • constexpr
    • static_assert
  • 6. Array
    • 배열
    • 배열과 포인터
    • C 타입 문자열
    • 다차원 배열
    • 퀴즈
  • 7. Type Aliasing & Type Deduction
    • Type aliasing
    • Type deduction
  • 8. Expression
    • lvalue & rvalue
    • Evaluation
    • Arithmetic operation
    • Logical/Relational operation
    • Other operations
    • sizeof
    • Alignment
    • Casting
  • 9. Variable & Function
    • Lifetime
    • Linkage
    • Function frame
    • Parameter
    • Return
    • Optimization
    • Argument
  • 10. Overload & Resolution
    • Function overload
    • Mangling
    • Resolution
  • 11. Function pointer & Assertion
    • Function pointer
    • Assertion
    • Debugging
  • 12. Inline & Constexpr specifier
    • Inline
    • Constexpr
  • 13. Quiz & Answer (1~12)
    • Quiz

5.2. Part 2. C++ as OOP Language (1)

  • 14. Class
    • Class
    • Encapsulation
  • 15. Basic Constructors
    • Class Constructor
    • Synthesis Constructor
    • Delegating Constructor
    • Converting Constructor
  • 16. Accessibility
    • Access
    • Friend
    • Class Scope
  • 17. Members & Declaration
    • Instance Members
    • Forward Declaration
    • Constness
    • Static Members
  • 18. Special Classes
    • Aggregate Class
    • POD Type
    • Trivial Class
    • Standard Layout
    • Constexpr Class
  • 19. Initialization
    • Initialization
    • Default Initialization
    • Value Initialization
    • Zero Initialization
    • Direct Initialization
    • Copy Initialization
    • List Initialization
    • Aggregate Initialization
    • Reference Initialization
  • 20. Non-Local Initialization
    • Non-Local Initialization
    • Static Initialization
    • Dynamic Initialization
  • 21. Quiz & Answer (14 ~ 20)
    • Quiz

5.3. Part 3. C++ through Library (1)

  • 22. Stream
    • I/O Classes
    • I/O States
    • File I/O
    • String I/O
  • 23. Formatted & Non-Formatted I/O
    • Manipulators
    • Non-Formatted I/O
  • 24. Sequential Containers
    • Sequential Containers
    • Iterator
    • Operations
    • Insertion
    • Access
    • Deletion
    • Resize
    • Container-Specific Operations
    • Vector Growth
    • Invalidation
  • 25. String
    • Creation
    • Modification
    • Search
    • Comparison
    • Numeric String
    • Other String
  • 26. String View & Conversion
    • String View
    • View Operations
    • Pitfalls
    • Conversion
  • 27. Container Adaptor
    • Adaptor
    • Stack
    • Queue
    • Complexity
  • 28. Associative Containers
    • Association
    • Pair
    • Structured Binding
    • Operations
    • Unordered Container
    • Invalidation
    • Complexity
  • 29. Callable Elements
    • Callable
    • Lambda Expression
    • Function Binding
    • Callable Wrapping
    • Functors
  • 30. Algorithms & Special Iterators
    • Algorithm
    • Categorization
    • Customization
    • Special Iterators
    • Iterator Categories
    • Container-Specialized Algorithms
  • 31. Quiz & Answer (22 ~ 30)
    • Quiz

5.4. Part 4. C++ as OOP Language (2)

  • 32. Memory Allocation
    • Dynamic Memory
    • New & Delete
    • Dynamic Array
    • Allocator
  • 33. Smart Pointers
    • Overview
    • Shared Pointer
    • Unique Pointer
    • Weak Pointer
    • Dynamic Array + Smart Pointer
  • 34. Copy Control
    • Copy Control
    • Copy Constructor
    • Copy & Initialization
    • Copy Assignment
    • Destructor
    • Rule of Three/Five
    • Default & Delete
    • Swap
  • 35. Move Semantics
    • R-value Reference
    • Move Constructor
    • Move Assignment
    • Synthesized Move Operator
    • Move Iterator
    • Move Operation And DRY
    • Reference Qualifier
  • 36. Operator Overloading
    • Overloading For Operators
    • Operator Examples
    • Functor
    • Callable And Function<T>
    • Conversion Operator
  • 37. Object-Oriented Programming
    • Object-Oriented Programming
    • Base/Derived Classes
    • Derived-To-Base Conversion
    • Base-To-Derived Conversion
    • Static In Inheritance
    • Virtual Function
    • Pure Virtual Function
    • Dynamic Binding
  • 38. Inheritance Accessibility
    • Inherited Member Visibility
    • Inheritance & Scope
  • 39. Inheritance Copy Control & Polymorphic Container
    • Inheritance & Copy Control
    • Constructor Inheritance
    • Inheritance & STL Container

5.5. Part 5. C++ as Generic Programming Language

  • 41. Templates
    • Generic Programming
    • Function Template
    • Class Template
    • Template Compilation
  • 42. Template Argument & Deduction

6. 진행

  • 2019.01.14
    • Chapter 1 ~ Chapter 3.2까지 진행.
  • 2019.01.22
    • Chapter 3.3 ~ Chapter 5까지 진행.
  • 2019.01.29
    • Chapter 6 ~ Chapter 7까지 진행.
  • 2019.02.12
    • Chapter 8.1 ~ Chapter 8.5까지 진행.
  • 2019.02.21
    • Chapter 8.6 ~ Chapter 9.1까지 진행.
  • 2019.02.25
    • Chapter 9.1 리뷰.
    • Chapter 9.2 ~ Chapter 9.5까지 진행.
  • 2019.03.05
    • Chapter 9.6 ~ Chapter 10.1까지 진행.
  • 2019.03.12
    • Chapter 10.2 ~ Chapter 11.1까지 진행.
  • 2019.03.19
    • Chapter 13. Q1 ~ Q24 퀴즈 진행 및 풀이.
  • 2019.03.26
    • Chapter 11.1 ~ Chapter 12.1까지 진행.
  • 2019.04.02
    • Chapter 11.1 ~ Chapter 12.1까지 리뷰.
    • Chapter 12.2 진행. (Part 1 종료!)
    • Chapter 14.1 ~ Chapter 14.2까지 진행.
  • 2019.04.09
    • Chapter 13. Q25 ~ Q65 퀴즈 진행 및 풀이.
  • 2019.04.16 / 2019.04.23
    • 중간고사 관계로 쉬어갑니다!
  • 2019.04.30
    • Chapter 15.1 ~ Chapter 16.3까지 진행.
  • 2019.05.07
    • Chapter 17.1 ~ 17.4까지 진행.
  • 2019.05.14
    • Chapter 17.1 ~ 17.4까지 리뷰.
    • Chapter 18.1 ~ 18.2까지 진행.
  • 2019.05.21
    • Chapter 18.3 ~ Chapter 19.4까지 진행.
  • 2019.05.28
    • Chapter 19.1 ~ 19.4까지 리뷰.
    • Chapter 19.5 ~ 19.9까지 진행.
  • 2019.06.04
    • Chapter 20.1 ~ 20.3까지 진행.
    • Chapter 22.1 ~ 22.4까지 진행.
  • 2019.06.11 / 2019.06.18
    • 기말고사 관계로 쉬어갑니다!
  • 2019.06.25
  • 2019.07.02
    • Chapter 23.1 ~ 23.2까지 진행.
  • 2019.07.09
    • Chapter 24.1 ~ Chapter 24.3까지 진행.
  • 2019.07.16
    • Chapter 24.4 ~ 24.10까지 진행.
  • 2019.07.23
    • Chapter 25.1 ~ 25.6까지 진행.
  • 2019.07.30
    • Chapter 26.1 ~ 26.4까지 진행.
  • 2019.08.08
    • Chapter 27.1 ~ 27.4까지 진행.
  • 2019.08.13
    • Chapter 28.1 ~ 28.4까지 진행.
  • 2019.08.22
    • Chapter 28.5 ~ 28.7까지 진행.
    • Chapter 29.1 ~ Chapter 29.2까지 진행.
  • 2019.08.29
    • Chapter 29.2 ~ Chapter 29.4까지 진행.
  • 2019.09.05
    • Chapter 29.4 ~ Chapter 29.5까지 진행.
    • Chapter 30.1 ~ Chapter 30.4까지 진행.
  • 2019.09.10
    • Chapter 31. Q1 ~ Q36 퀴즈 진행 및 풀이.
  • 2019.09.17
    • Chapter 32.1 ~ Chapter 32.4까지 진행.
  • 2019.09.24
    • Chapter 33.1 ~ Chapter 33.5까지 진행.
    • Chapter 34.1 ~ Chapter 34.1까지 진행.
  • 2019.10.01
    • Chapter 34.2 ~ Chapter 34.8까지 진행.
  • 2019.10.08
    • Chapter 35.1 ~ Chapter 35.3까지 진행.
  • 2019.10.29
    • Chapter 35.4 ~ Chapter 35.7까지 진행.
    • Chapter 36.1 ~ Chapter 36.2까지 진행.
  • 2019.11.05
    • Chapter 36.2 ~ Chapter 36.4까지 진행.
  • 2019.11.12
    • Chapter 36.5 ~ Chapter 36.5까지 진행.
    • Chapter 37.1 ~ Chapter 37.2까지 진행.
  • 2019.11.19
    • 휴강!




7. 댓글

  • 으헝 월요일이라니 아쉽군여 - 김민하
    • 시간을 다 합쳐보니 월요일 저녁이나 화요일 저녁밖에 되질 않아서 이렇게 되었습니다...ㅠㅠ - 신형철
  • 캬~~ 여기가 그 말로만 듣던 은하수 인가요?? - ??
    • 은하수...는 아닐겁니다...? - 신형철
  • 퀴즈의 경우에 저작권 걸고 공유하는 것도 좋을 것 같습니다~, 문제가 상당히 고퀄이라 들어서;;; - 우준혁
    • 깃허브에 공유되어 있습니다! - 신형철
Retrieved from http://wiki.zeropage.org/wiki.php/Shaprest++
last modified 2021-02-16 14:07:45