C++ 강좌 2

C/C++ 개념: 완전한 타입(Complete Type), 불완전한 타입(Incomplete Type)

완전한 타입(Complete Type), 불완전한 타입(Incomplete Type) 1. 설명 완전한 타입이란, 해당 컴파일 시점에서 그 타입(구조체(struct), 열거자(enum), 공용체(union), 클래스(class))의 구현(Implement) 정보를 모두 알고 있는 타입을 말합니다. 위 4가지를 제외한 모든 타입은 무조건 완전한 타입입니다. 불완전한 타입이란, 해당 컴파일 시점에서 그 타입의 구현 정보를 알지 못하고, 선언된 정보만 알고 있는 상태를 말합니다. ※ 타입의 어떠한 정보도 알지 못하는건 그냥 알수 없는 타입(unknown type)이나 알수 없는 식별자(unknown identifier) 입니다. 보통 실수로 헤더를 넣지 않거나 했을 때 생깁니다. 2. 예시 #include s..

C++ STL: std::rbegin, std::rend, std::crbegin, std::crend

std::rbegin, std::rend std::crbegin, std::crend 요약 기본 배열 타입은 자동으로 알맞은 reverse_iterator를 만들어 되돌려 줍니다. 그 외에는 인자로 받은 객체의 동일한 이름의 메서드를 호출합니다. 즉, 알맞은 메서드가 정의되어 있다면 사용자 정의 클래스도 인자로 넘겨 줄 수 있습니다. 설명 std::rbegin 은 마지막 원소 주소를, std::rend 는 처음 원소의1칸 이전 주소를 가리키는 reverse_iterator를 만들어 반환합니다. std::crbegin, std::crend 는 각각 std::rbegin, std::rend 와 동일한 곳을 가리키는 const reverse_iterator를 반환합니다. std::end 가 실제 마지막 원소보..