변수의 선언프로그램이 시작될 때 생성되고 종료될 때 소멸static 멤버\-- 프로그램이 시작할 때 생성\-- 클래스 당 하나만 생성(모든 객체가 하나의 멤버를 공유)선언\-- static 변수타입 변수명;\-- static int totalAccount;초기화\--
객체 배열의 선언변수의 배열과 동일클래스명 객체명크기;Circle donut10;객체 배열 사용의 목적여러 객체를 하나의 이름으로 관리 (변수 배열과 동일)배열의 생성자 / 소멸자배열의 인자 마다 생성자 / 소멸자 호출기본 생성자만 호출됨소멸자는 생성 반대 순으로 소멸
C스트링 - char에 배열 사용(공간 낭비 발생)string 클래스C++ 표준 라이브러리 상요& - 가변길이 문자열문자열 연산을 지원하는 함수 지원:비교, 복사, 길이 등string을 이용하여 숫자 변환string 객체의 동적 생성(동적 생성은 heap영역에 생성)
형식1) 변수타입 함수명(변수타입 &변수명)2) void func(int &val)예시)반환되는 데이터에 여러 종류인 경우함수는 값 외에 참조 리턴 가능참조 리턴변수 등과 같이 현존하는 공간에 대한 참조 리턴특징객체의 복사 생성시 호출되는 생성자한 클래스에 한 개만 선
정의피 연산자가 하나인 연산자종류전위 연산자\++val, --val후위 연산자val++, val--✏️ 전위 ++연산자 중복✏️ 전위 ! 연산자 중복✏️ 후위 ++ 연산자 중복\*전위 ++와 구분하기 위해 임의의 정수를 사용하여 함수 중복 구현
✏️ friend를 이용한 + 연산자 중복✏️ friend를 이용한 ++ 연산자 중복(전위, 후위)✏️ 참조를 반환하는 << 연산자 중복
상속이란?물질적인 상속, 유전적인 상속C++의 상속기본 클래스의 속성과 기능을 파생 클래스에 물려줌기본클래스(base class): 상속해주는 클래스, 부모 클래스파생클래스(derived class): 상속을 받는 클래스, 자식클래스다중 상속여러 클래스를 상속 받는 기
📝 업캐스팅 기본클래스형 포인터가 파생클래스를 참조하여 포인터가 파생클래스의 멤버에는 접근하지 못하고 기본클래스의 멤버에만 접근이 가능한 것
생성자의 실행기본 클래스의 생성자 먼저 실행소멸자의 실행파생 클래스의 소멸자 먼저 실행상속 지정자public - 기본 클래스의 protected, public멤버 속성 그대로 계승private - 기본 클래스의 protected, public멤버를 private으로 계
가상 함수Virtual로 선언함수에 대한 호출 바인딩을 실행 시간에 결정(동적 바인딩)오버라이딩파생 클래스에서 기본 클래스의 함수와 동일한 이름의 함수 선언기본 클래스의 동작을 재정의다형성을 위한 기능가상함수에 대한 오버라이딩을 할 경우 동적 바인딩 가능
특징컴파일 시점이 아닌 실행 중 기본 클래스의 포인터로 오버라이딩 한 파생 클래스의 함수를 실행기본 클래스의 함수를 Virtual로 선언특징함수이름, 매개변수 타입, 갯수 리턴타입이 모두 일치파생클래스에서 virtual 생략 가능(상속됨)가상 소멸자소멸자를 virtua
일반화 / 제네릭 함수함수 및 클래스의 변수 타입에 관계없이 사용할 수 있도록 틀을 만드는 방법전체 집단을 하나로 묶는 방법템플릿일반화하기 위한 C++의 도구templete 키워드 사용선언구체화컴파일러가 템플릿 함수로부터 자료형에 맞는 구체화된 함수의 소스코드 생성장점
📝 두개의 제네릭 타입을 갖는 템플릿 📝 중복 함수와 템플릿 우선 순위 📝 제네릭 클래스
STL(Standard Template Library)표준 템플릿 라이브러리C++ 표준 라이브러리 중 하나많은 제네릭 클래스와 제네릭 함수 포함개발자는 이들을 이용하여 쉽게 응용 프로그램 작성STL의 구성컨테이너 - 템플릿 클래스데이터를 담아두는 자료 구조를 표현한 클
특징가변 길이 배열을 구현한 제네릭 클래스개발자가 벡터의 길이에 대한 고민할 필요 없음원소의 저장, 삭제, 검색등 다양한 멤버 함수 지원벡터에 저장된 원소는 인덱스로 접근가능인덱스는 0부터 시작iterator(반복자)컨테이너의 원소를 가리키는 포인터iterator 변수
특징('키', '값')의 쌍을 원소로 저장하는 제네릭 컨테이너'키'로 '값'을 검색많은 응용에서 필요함
알고리즘 함수템플릿 함수전역 함수STL컨테이너 클래스의 멤버 함수가 아님iterator와 함께 작동sort() 함수 사례두 개의 매개 변수첫 번째 매개 변수 : 정렬을 시작한 원소의 주소두 번째 매개 변수 : 정렬 범위의 마지막 원소 다음 주소세 번째 매개 변수 : 오
데이터의 흐름흐르는 시내와 유사한 개념데이터를 전송하는 소프트웨어 모듈스트림의 양 끝에는 프래그램과 장치 연결보낸 순서대로 데이터 전달입출력 기본 단위 : 바이트종류입력 스트림입력 장치, 네트워크, 파일로부터 데이터를 프로그램으로 전달하는 스트림출력 스트림프로그램에서
cout을 이용한 입출력 시 포맷 지정 가능포맷 입출력 방법 3가지포맷 플래그포맷 함수조작자입출력 스트림에서 입출력 형시을 지정하기 위한 ios클래스의 플래그포맷을 변경하는 함수int width(int minWidth)출력되는 필드의 최소 너비를 minWidth로 설정
삽입 연산자(<<)insertion operator, 삽입자라고도 부름<<연산자는 C++의 기본 연산자 : 정수 시프트 연산자ostream 클래스에 중복 작성되어 있음추출 연산자(>>)extraction operator'>>연산자는 C++의 기본
텍스트 파일사람이 사용하는 글자로 그성알파벳, 한글, 숫자, 기호 등ASCII코드, 유니코드 등으로 변환가능바이너리 파일문자로 표현되지 않는 바이너리 데이터오디오, 이미지, 동영상, 실행파일 등파일을 IO하기 위한 모듈ifstream파일 읽기ofstream파일 쓰기fs
파일 입출력에 대한 구체적인 작업 행태에 대한 지정파일에서 읽을 작업을 할 것인지, 쓰기 작업을 할 것인지기존 파일의 데이터를 모두 지우고 쓸 것인지, 파일의 끝 부분에 쓸 것인지텍스트 I/O 방식인지 바이너리 I/O 방식인지파일 모드 지정 파일 열 때open("파일이
바이너리 I/O 방식데이터의 바이너리 값을 그대로 파일에 저장하거나, 파일의 바이너리 값을 그대로 읽어서 변수나 버퍼에 저장하는 방식텍스트 파일이든 바이너리 파일이든 바이너리 I/O로 입출력가능바이너리 I/O 모드 열기ios::binary 모드 속성 사용ios::bin
스트림 상태파일 입출력이 진행되는 동안 스트림에 관한 입출력 오류 저장스트림 상태를 저장하는 멤버 변수 이용eofbit파일의 끝을 만났을 때 1로 세팅failbit정수를 입력받고자 하였으나 문자열이 입력되는 등 포맷 오류나 쓰기 금지된 곳에 쓰기를 시행하는 등 전반적인
컴파일 오류문법에 맞지 않는 코드 사용컴파일 과정에서 발견됨디버깅 난이도가 낮음논리적 오류개발자의 논리적 오류예외상황에 대한 미숙한 대처의 코드실행 결과가 예상과 다름디버깅 난이도가 높음예외란?실행 중, 프로그램 오동작이나 결과에 영향을 미치는 예상치 못한 상황 발생예