개발/C++

개발/C++

[C++] 컨테이너 (vector, map)

STL - C++ 표준 템플릿 라이브러리 중 하나 많은 제네릭 클래스와 제네릭 함수 포함 → 쉽게 프로그램 작성 할 수 있음 구성 요소 컨테이너 : 데이터를 담아두는 자료 구조를 표현한 클래스 iterator : 컨테이너 원소에 대한 포인터 알고리즘 : 템플릿 함수 컨테이너란? - 데이터를 담아두는 자료 구조를 표현한 클래스 STL 의 구성 요소 중 하나 데이터를 저장하는 객체 컨테이너 구성 요소 sequence containers associative containers container adapters 컨테이너 종류 vector map list set stack queue deque iterator란? - 반복자 - 컨테이너의 원소를 가리키는 포인터 #구체적인 컨테이너를 지정하여 반복자 변수 생성 v..

개발/C++

[C++] 제네릭

함수를 중복해 매개변수만 바꾸어 사용하면 편하긴 하지만, 비효율적인 동작을 하게 된다. 이를 해결하기 위해 매개변수만 바꾸어 쓸 수 있는 템플릿을 만들어 일반화 할 수 있다. 그 방법에 대해 알아보자! Template (템플릿) - 함수나 클래스 코드를 찍어내듯 생산 할 수 있도록 일반화(Generic) 시키는 도구 template void myTemplate(A &a, A &b){ A apple; apple = a; a = b; b = apple; } //template : 템플릿 선언 키워드 , class : 제네릭 타입 선언 A : 제네릭 타입 이름 //3개의 서로 다른 타입이 사용 되는 중복 함수 예제 template template //typename 키워드 사용 가능 템플릿 구체화 - 중복 함..

개발/C++

[C++] 상속

클래스 사이에서 상속 관계 정의 ▪ 객체 사이에는 상속 관계 없음 상속하는 클래스와 상속받는 클래스 ▪ 상속하는 클래스 부모(parent) 클래스, 수퍼(super) 클래스, 기본(base) 클래스 ▪ 상속받는 클래스 자식(child) 클래스, 서브(sub) 클래스, 파생(derived) 클래스 ▪ 기본 클래스에서 파생 클래스로 갈수록 클래스의 개념이 구체화 ▪ 다중 상속을 통한 클래스의 재활용성 높임 상속의 목적 및 장점 1. 간결한 클래스 작성 기본 클래스의 기능을 물려받아 파생 클래스를 간결하게 작성 2. 클래스 간의 계층적 분류 및 관리의 용이함 상속은 클래스들의 구조적 관계 파악 용이 3. 클래스 재사용과 확장을 통한 소프트웨어 생산성 향상 빠른 소프트웨어 생산 필요 기존에 작성한 클래스의 재사..

개발/C++

[C++] Static

static - 변수와 함수에 대한 기억 부류의 한 종류 생명주기 – 프로그램이시작될때생성,프로그램종료시소멸 사용범위 – 선언된범위,접근지정에따름 클래스의 멤버 - static 멤버 프로그램이 시작할 때 생성 클래스 당 하나만 생성, 클래스 멤버라고 불림 클래스의 모든 인스턴스(객체)들이 공유하는 멤버 - non-static 멤버 객체가생성될때함께생성 객체마다 객체 내에 생성 인스턴스 멤버라고 불림 멤버의 static 선언 static 멤버 변수 생성 - 전역 변수로 생성 - 전체프로그램내에한번만생성 static 멤버 변수에 대한 외부 선언이 없으면 다음 링크 오류 - 객체의 멤버로 접근 static 멤버는 객체 이름이나 객체 포인터로 접근 -> 보통 멤버처럼 접근 할 수 있음 객체.static멤버 객체..

개발/C++

[C++] 함수 중복 | 디폴트 매개변수 (feat. 복사 생성자)

복사 생성자 - 어떤 객체를 복사하여 똑같은 타입의 객체를 생성할 때 복사 생성자가 호출 얕은 복사 - 변수가 가리키는 실제 데이터가 아닌 단지 메모리 주소만을 복사 깊은 복사 - 변수가 관리하는 리소스 자체를 복사(새롭게 메모리를 할당) #define _CRT_SECURE_NO_WARNINGS #include #include class MyString { public: MyString(const char* n); MyString(const MyString& other); ~MyString(); void SetString(const char* n); const char* GetString() const; int GetLength() const; private: void Release(); char* da..

chimita
'개발/C++' 카테고리의 글 목록