Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MFC++: Difference between revisions

From ZeroWiki
imported>nerumin90
No edit summary
No edit summary
Line 43: Line 43:
== 진행 내용 ==
== 진행 내용 ==
* [[MFC++/9월7일]]
* [[MFC++/9월7일]]
 
* [[MFC++/10월5일]]
== 진행 예정 내용 ==
== 진행 예정 내용 ==
* Chapter 1. 변수와 타입
* Chapter 1. 변수와 타입

Revision as of 17:10, 7 October 2016

개요

  • Mastering Further C++
    • --Mxxxxx Fxxxxxx C++...--

진행

  • 진행 방식은 과거 미시Cpp를 벤치마킹(?)해서 진행합니다.
    • 즉, 주마다 특정 주제 내용을 소개하는 방식으로 진행됩니다.
  • 진행 스타일은 과거 CS 스터디와 동일합니다.
    • --템플릿도 그냥 복사해서...--
  • 2016년 2학기 시작 직후부터 시작합니다.
  • 되도록이면 수요일 정모 직후, 7시에서 9시까지 진행합니다.
    • 주마다 진행 요일이 불가피하게 바뀌어야 할 수도 있습니다.
  • 진행에 사용되는 소스 코드는 해당 레포지토리에 있습니다.

참가자

  • 기반 C++ 내용에 대해서는 거의 생략할 예정이므로, 대체적으로 이미 C++을 공부해본 경험이 있으신 편이 좋습니다.
  • 참가하실 분은 아래 이름을 적어주세요!
  • 신형철, 박인서, ~~프로 도강러~~성훈, 강민승,

목표

  • C++ 돌아보기 --돌아보는 척 하면서 더 낯설게 만들기--
  • C++11과 C++14의 내용 숙지
  • 흔한 C++ 프로그래밍 실수 방지하기
  • C++에서의 동시성 활용하기

참고

진행 내용

진행 예정 내용

  • Chapter 1. 변수와 타입
    • #1. 산술 타입
    • = 부동소수점 연산 시에는 정밀도 손실을 항상 경계하자.
    • = (지나가는) long long의 숨겨진 이야기
    • #2. 문자 타입
    • = char, signed char, unsigned char를 구분하자.
    • = 때로는 다양한 문자 표현들을 고려하자.
    • = 필요하다면 이스케이프 시퀀스는 무시하자.
    • #3. 내장 타입 간 형변환
    • = 타입의 범위를 넘어가는 값 대입은 예상처럼 작동할 수도, 그렇지 않을 수도 있다.
    • = 부호 있는 타입과 부호 없는 타입을 섞어쓰는 표현식은 항상 경계하자.
    • #4. 상수
    • = 다양한 상수 표기를 활용하자.
    • #5. 초기화와 분리 컴파일
    • = 초기화와 대입의 의미를 구분하자.
    • = 기존의 초기화 방식과 목록 초기화 방식의 차이점을 숙지하자.
    • = 변수의 선언과 정의를 구분하자.
    • #6. 복합 타입
    • = 참조자의 의미를 돌아보자.
    • = 포인터의 의미를 돌아보자.
    • = 복합 타입과 바탕 타입을 형식으로써 섞어 사용하지 말자.
    • = 널 포인터를 표현하고 싶을 때 선택할 수 있는 것은 딱 하나뿐이다.
    • = 참조자와 포인터를 구분해서 사용하자.
    • #7. const와 constexpr
    • = 초기화와 const의 관계를 파악하자.
    • = const 변수를 여러 파일에서 공유하려 할 때는 주의하자.
    • = 상위 const와 하위 const를 구분하자.
    • = 적합하다면, constexpr을 항상 곁에 두자.
    • #8. auto와 decltype
    • = auto의 동작 원리를 파악하자.
    • = decltype의 동작 원리를 파악하자.
    • #9. 나머지 이야기
    • = 타입 별칭을 사용할 때는 별칭 선언을 사용하자.
    • = 상황에 따라서는 변수도 일반화해서 정의해보자.
    • = (지나가는) 코드를 분석해보자.
    • = (지나가는) 키워드는 왜 식별자로 사용이 불가능할까?
    • = (지나가는) 내장 bool 타입은 꼭 필요한걸까?
    • = (지나가는) C 라이브러리와 C++ 버전 라이브러리의 차이는 무엇일까?
  • Chapter 2. 문자열과 배열, 벡터
    • #1. string
    • = 유니코드에 맞는 string을 사용하자.
    • = string 생성자 종류와 string 연산들의 종류를 대략적으로 알아두자.
    • = 문자 제어에 도움이 되는 함수들을 알아두자.
    • = string을 스트림을 통해 읽어들일 때, istream/getline 간 차이를 파악하자.
    • = size_t, size_type 등의 typedef 타입들의 의미를 파악하자.
    • = C-Style String은 가급적이면 사용하지 말자.
    • #2. 배열
    • = 포인터 타입과 배열 타입 간 형식 연역 차이를 파악하자.
    • = 포인터를 배열에 대한 반복자로 생각하자.
    • #3. 벡터
    • = 벡터 생성자 종류와 벡터 연산들의 종류를 대략적으로 파악하자.
  • Chapter 3. 표현식과 문장, 함수
    • #1. 변환과 캐스팅
    • = (지나가는) 산술 타입 간 암시적 변환과 정수 승격 기준을 알아보자.
    • = C++ 스타일의 캐스팅을 사용하자.
    • #2. 함수
    • = 자동 객체와 지역 static 객체를 돌아보자.
    • = const와 함수 매개변수의 관계에 조심하자.
    • = 배열 매개변수를 선언하는 다양한 방법을 파악하자.
    • = initializer_list를 사용해서 가변 매개변수를 흉내내보자.
    • = (지나가는) 함수에서 배열 타입을 반환해보자.
    • = 후행 반환 타입을 통해 함수를 정의해보자.
    • = 반환 타입 유추가 필요할 땐 auto를 사용하자.
    • = const_cast가 함수 속에서 유용하게 쓰이는 경우를 알아두자.
    • = 매개변수에 기본 값이 필요하다면 기본 인자를 선언해보자.
    • = inline 지정은 만능이 아님을 알아두자.
    • = 함수 일치 과정을 파악하자.
    • = 함수가 예외를 던지지 않는다면 noexcept로 선언하자.
    • = 예외 명세는 가급적 사용하지 말자.
    • #3. 이런저런 이야기
    • = switch 레이블에서 초기화 우회를 조심하자.
    • = 피연산자 평가 순서에 조심하자.
    • = sizeof 연산자를 돌아보자.
    • = 디버깅에 도움이 되는 도구들을 알아두자.
    • = 가급적이면 auto를 선호하자.
    • = auto 형식 추론이 예상치 않은 타입일 경우 캐스팅을 활용하자.
    • = 매크로보다는 상수나 inline이 낫다.
    • = (지나가는) 캐스팅 퀴즈
  • Chapter 4. 클래스
    • #1. 멤버 함수
    • = this의 정체를 파악하자.
    • = 클래스에 대해 컴파일러가 이름 검색을 하는 과정을 알아두자.
    • #2. 생성자
    • = 생성자와 객체의 관계를 파악하자.
    • = 명시적으로 합성 멤버를 원한다면 default를 명시하자.
    • = 멤버 변수의 초기화 값이 선택되는 순서를 알아두자.
  • 계속 작성 예정입니다.

덧글