◆vector 클래스의 정의 벡터 클래스는 시퀀스 컨테이너에 대한 클래스 템플릿입니다. 벡터는 지정된 형식의 요소를 선형 배열에 저장하고 모든 요소에 대한 빠른 임의 액세스를 허용합니다. 어려우니 자료형의 리스트라고 생각하자 ◆ vector 클래스의 구문 // vector 구문 template class vector ◆ vector 클래스의 헤더, 사용 방법 // 헤더 #include using namespace std; int main() { // allcator 까지 명시한 vector 선언, default 되있으므로 필요는 없다. // allocator 클래스 템플릿은 형식 Type의 개체 배열에 대한 스토리지 할당 및 해제를 관리하는 개체를 설명합니다. vector vec0; // 10 사이즈의 ..
Private 상속 Student 클래스 예제 인터페이스와 구현 public 상속에서, 클래스는 인터페이스와 구현을 상속한다. (기초 클래스에 있는 순수 가상 함수들은 구현이 없이 인처페이스만 제공할 수 있다.) 인터페이스를 획득하는 것은 is-a 관계의 역할이다. 반면에 컨테인먼트에서는 어떤 클래스가 인터페이스 없이 구현을 획득한다. 인터페이스를 상속하지 않는 것이 has-a 관계의 역할이다. 키워드 explicit 하나의 매개변수로 호출될 수 있는 생성자는, 그 매개변수의 데이터형을 클래스형으로 암시적으로 변환하는 함수로 기능한다는 사실을 기억하라. 컨테인트먼트와 private 상속 컨테인먼트 1. 사용하기 쉽다. 2. 하나 이상의 기초 클래스로부터 클래스를 상속할 때, 상속이 문제를 일으킬 수 있기..
string 클래스 문자열 생성 string 클래스 입력 문자열 작업 string 클래스가 제공하는 그 밖의 기능 C++ 시스템들은 실제 문자열보다 훨씬 큰 메모리 블록을 대입하여 문자열이 자랄 수 있는 공간을 제공한다. 그러고 나서, 그 문자열이 마침내 그 크기를 초과하게 되면, 프로그램은 그 크기의 두 배인 새로운 블록을 대입하여 연속적인 크기 조절 없이 문자열이 자랄 수 있게 더 많은 공간을 제공한다. capacity() 메서드는 현재 블록의 크기를 리턴하고, reserve() 메서드는 그 블록을 위한 최소 크기를 사용자가 요청하게 한다. string 객체를 가지고 있지만 C 스타일 문자열이 필요할 때 c_str() 메서드가, 호출하는 string 객체와 동일한 내용을 가지는 C 스타일 문자열을 가..
간단한 기초 클래스부터 시작하자 생성자: 접근에 대하여 멤버 초기자 리스트 파생 클래스 생성자는, 기초 클래스 생성자에 값들을 전달하기 위해 멤버 초기자 리스트 문법을 사용할 수 있다. child::child(int age, int cuteScore) : parent(age)// 초기자 리스트 { cuteScore = cuteScore; } 여기서, child는 파생 클래스이고 parent는 기초 클래스이다. age는 기초 클래스 생성자가 사용하는 변수들이다. 기초 클래스 생성자를 제공하지 않는다면, 프로그램은 디폴트 기초 클래스 생성자를 사용한다. 멤버 초기자 리스트는 생성자에만 사용할 수 있다. 파생 클래스와 기초 클래스의 특별한 관계 첫쨰, 파생 클래스 객체는 기초 클래스 메서드들이 private이..