728x90
반응형

프로그래밍 72

파일 입출력

2023.02.28 최초 작성 파일을 읽고 쓰기 위한 스트림은 fstream에서 지원한다. 파일 열기 모드 옵션 ios_base::in 읽기 모드로 열기 (ifstream에서 기본값) ios_base::out 쓰기 모드로 열기 (ofstream에서 기본값) ios_base::binary 바이너리 모드로 열기 ios_base::ate 출력 위치가 파일의 끝에서 시작 ios_base::app 모든 출력이 파일의 끝에 추가 됨 ios_base::trunc 파일의 내용을 모두 삭제하고 열기 #include #include using namespace std; int main() { ofstream ofs; ofs.open("D:\\test.txt", ios_base::out); //ofstream에서 out은 ..

프로그래밍/C++ 2023.02.28

list

2023.02.27 최초 작성 노드와 노드가 연결되어있는 연결리스트 구조이다. 연속적인 메모리 공간이 아니므로 인덱스로 임의 접근이 불가하다. 탐색 속도가 벡터에 비해 느리다. 선언 및 초기화 list char_list{ 'A', 'B', 'C' }; 정해진 요소로 초기화 list char_list2(char_list); 다른 목록을 복사 생성자로 초기화 list char_list3(10, 'a'); 정해진 요소로 일정 크기만큼 초기화 list char_list4; 빈 리스트 초기화 반복자 begin() beginning iterator를 반환 end() end iterator를 반환 요소 접근 *iterator iterator가 가리키는 원소에 접근 front() 첫번째 원소를 반환 back() 마지막..

프로그래밍/C++ 2023.02.27

vector

2023.02.17 최초 작성 연속된 메모리 공간을 갖는 배열 구조이다. 내부에서 자동으로 동적 할당하며 배열 공간의 크기를 관리한다. 선언 및 초기화 vector 변수명 vector 변수명(숫자) vector 변수명 = { 변수1, 변수2, 변수3... } vector 변수명[] = {, } vector 변수명 vector변수명.assign(범위, 초기화할 값) 반복자 v.begin() 백터 시작점의 주소 값 반환 v.end() 백터 (끝부분 + 1) 주소값 반환 v.rbegin() (revers begin) 백터의 끝 지점을 시작점으로 반환 v.rend() (revers end) 백터의 (시작 + 1) 지점을 끝 부분으로 반환 요소 접근 v.at(i) 백터의 i번째 요소 접근 (범위 검사함) v.[i..

프로그래밍/C++ 2023.02.27

가상함수, 순수가상함수, 추상클래스

2023.02.24 최초 작성 가상함수 : 파생 클래스에서 재정의할 것을 기대하는 함수이다. 모양 virtual function(){ } 순수 가상함수 : 구현 없이 선언만 있는 함수이다. 모양 virtual void function() = 0; 추상 클래스 : 순수 가상함수를 가지고 있는 클래스로 객체를 만들지 못하여 상속으로만 사용할 수 있다. static_cast : compile 타임에 형 변환 타입 오류를 잡아준다. 부모 클래스에서 자식 클래스로 downcast 할 때는 unsafe 하게 동작할 수 있다. 사용법 static_cast(대상); dynamic_cast : run 타임에 형 변환 타입 오류를 잡아준다. static_cast에 비해 속도가 느리다. 부모 클래스에서 자식 클래스로 dow..

프로그래밍/C++ 2023.02.24

상속

2023.02.23 최초 작성 공통된 내용을 여러 클래스가 중복해서 가지지 않고 부모 클래스로 만들어서 정의하고 자식 클래스가 상속받아 사용할 수 있다. 형식은 아래와 같다. class 부모클래스 { } class 자식클래스 : 접근제한자 부모클래스 { } 상속받을 때 지정한 접근제한자보다 접근 범위가 넓은 것은 접근권한이 축소된다. 자식 클래스에서 부모의 멤버를 접근할 때는 __super을 이용할 수 있다. 부모 클래스에서 물려받은 함수를 자식 클래스가 재정의(오버라이딩)할 수 있다. 둘 이상의 부모 클래스로부터 다중 상속받을 수 있다. #include using namespace std; class ClassA { private: int a; protected: int b; public: int c;..

프로그래밍/C++ 2023.02.23
728x90
반응형