728x90
- C++ 객체지향 프로그래밍
- C++에서는 사용자 정의 헤더가 아닌, 표준 헤더들은 .h 생략
- _tmain은 유니코드를 지원하기 위해 재선언 됨
- 인스턴스
- 변수와 같은 의미
- ex) int a → int 자료형에 대한 인스턴스 a
- 자료형
- C와 기본적으로 같다
- auto, decltype(expr) 추가
- auto
- 초기값 형식에 맞추어 선언하는 인스턴스 형식이 자동으로 결정
- 범위 기반 for문에서 활용
- 컴파일 시점에 항을 보고 변수의 타입을 결정. 그래서 초기화가 의무적이다.
- 메모리 동적 할당
- new와 malloc 차이(메모리 크기 지정 안해도 됨)
- new[]로 생성한건 delete[]로 삭제 (동적 할당 객체와 객체의 배열은 구조가 다르기 때문에 메모리누수(Memory Leak)가 발생할 수 있다
- 참조자 형식
- 포인터와 구조적으로 비슷
- 선언과 동시에 초기화
- 상수에는 참조자 선언 불가
- 참조는 ‘주소’를 의미
- 참조자는 참조하는 변수를 대신하는 또 하나의 이름(직접 참조) ← 같은 공간이라 메모리소모 x
- 포인터는 메모리의 주소를 가지고 주소 값을 통한 메모리 접근(간접 참조) ← 메모리 공간 소모(주소값)
- r-value , l-value
- l-value는 l-value만 ,r-value는 r-value만 참조 가능
- l-value는 참조생성자 연산 후에도 매개인자 값이 남아 복사연산.
- r-value는 참조생성자 연산 후에도 매개인자 값이 남지 않아 이동연산. 원본의 복사가 불가능하도록 유일한 소유권 구현가능 ex) unique_ptr, shared_ptr에서 사용
- 범위기반 for문
- 반복 횟수는 배열 요소 개수에 맞춰 자동
- for(auto n; list) → 읽기만 가능한 접근
- for(auto &n; list) → 수정도 가능
728x90
'언어 > C++' 카테고리의 다른 글
6. 클래스의 완성 (0) | 2023.01.19 |
---|---|
5. 연산자 다중정의 (0) | 2023.01.17 |
4. 복사 생성자 & 임시객체 (0) | 2023.01.17 |
3. 클래스 (0) | 2023.01.16 |
2. C++ 함수와 네임스페이스 (0) | 2023.01.16 |