전혀. 요즘에는 2과에서 보통 3 가지가 많이 움직입니다.
- char *, strlen, strxxx 메소드 등의 배열 인 문자열
- 일반적으로 배열과 포인터 산술
- 새로운 것을 삭제, 새로운 것을 삭제 [], 심지어 소멸자
제 99과에서 보통 이런 것들이 훨씬 빨리 움직여야합니다
- 사용할 것으로 템플릿 사용
- std :: string
- std :: shared_ptr <>
- std :: vector <>, 반복자, 기타 컬렉션
Evey 원시 포인터는 즉시 스마트 포인터 래퍼에 제공해야합니다 (공유로 시작하고 std :: move 및 rvalue 참조를 설명해야하므로 나중에 고유 한 것으로 간주합니다). 이렇게하면 C ++를 배우는 것이 언어와 동시에 라이브러리를 배우는 Java 또는 C #을 배우는 것과 매우 흡사합니다. 또한 많은 메모리 작업을 제거하고 사람들이 문제를 덜 걱정하게 만듭니다.
또한 컬렉션을 처음으로 반복하고 각 요소에 대해 무언가를하고 싶을 때 람다를 그림으로 작업했습니다.
면책 조항 : 현재 Pluralsight에 대한 C ++ 코스를 작성 중이며이 접근법을 사용하고 있습니다. 마지막 모듈은 "다른 사람들의 코드를 이해하는 것"이며, char * 문자열, 수동 메모리 관리, 포인터 산술 등과 같은 혼란스러운 부분을 넣을 곳입니다.
업데이트 : C ++ 0x의 존재가 C ++ 03으로 가르쳐 줄 수있는 것들을 가르치는 이유를 묻는 사람들이 있습니다. 나는 그것이 여러 가지라고 생각합니다.
- 컬렉션에 친숙한 진정한 스마트 포인터는 "직원 포인터 배열"과 같이 항상 새로운 / 삭제, 포인터 산술 등에 빠지게하는 원인을 제거합니다.
- 자동 반복자 선언의 고통을 없애
- 람다는 평범한 사람이 할 일을 가르치다
- 구문 분석과 같이 사소한 것조차
>>
템플릿의 일부 템플릿을 선언 할 때있을 수있는 문제를 제거합니다.
- 등등
내가 보는 방식으로, 우리가 얼마 전에 C ++을 가르치는 방식에 대해 우리가 바꿀 수있는 것들이 있지만, 우리 중 일부는 여전히 폴백을 위해 구식 방법이 필요했거나 많이 가르치기 때문에 보류했습니다. 비전 지식.