오늘은 예전에 배운 C++의 내용에 대해 다시 공부했다. 취준을 하면서 많이 보고 필요한 내용이지만 정작 몇일 지나면 잊어버린다. 이런일을 방지하고자 이 추적에다 글을 남겨야겠다.
우선 이분의 블로그를 보고 나에게 필요한것만 정리하였다.
*자세한 내용은 이 링크를 타고 확인할 수 있다.* 링크 : https://koocci.github.io/
const : 값이 변경되거나 수정할 수 없다. 선언과 동시에 초기화!!
언제? 사용할까??
1: 함수내에서 맴버변수에 저장된 값을 변경하지 않을때
2: const함수 내에서 const가 아닌 함수호출 제한
EX) set() const , get() const
this -> 함수의 파라미터값이 아닌 맴버변수를 사용할때 객체의 주소를 첨조하는 참조자
member Initializer(맴버 이니셔라이져)
생성자 : 맴버변수의 초기화를 목적으로 정의가 됨
그러므로 객체생성과정에서 생성자 호출은 객체의 초기화를 수월하게 해줌 -> 맴버 이니셜라이져 개념나옴
맴버 이니셜라이져 : 선언과 동시에 초기화가 이뤄지는 형태, 맴버변수로 참조자를 선언 가능
-> 많이 쓰이므로 이 모양을 잘 알고 흐름을 따라가야함
깊은복사 : (디폴트)복사생성자 : 정의하지 않으면 자동삽입, 포인터를 참조하도록 생성과 정의
1 2 3 4 5 6 7 | Person(const Person& copy) : age(copy.age){ name = new char[~]; strcpy(name,copy.name); } | cs |
// 임시객체를 만듬 -> 참조자의 참조되는 임시객체는 바로 소멸안됨
얕은복사 : 주소를 공유함_문제점, 하나의 주소를 두 객체가 동시에 참조 -> 소멸과정에서 문제발생
C++ const
const Person p(21) -> 객체도 상수화 가능 : 이 객체의 데이터 변경X , Const 맴버함수만 호출가능
friend : A클래스가 B클래스를 대상으로 선언하면 B클래스는 A클래스의 'Private' 맴버에 직접접근 가능! (많이 쓰이지는 않는다.)
Static : 전역 -> 선언된 파일 내에서만 참조 허용
함수내부 -> 한번만 초기화되고, 함수빠져나와도 소멸X
static 맴버변수(클래스 변수) - 클래스당 하나씩만 생성
여러개의 객체사 하나의 맴버변수를 공유, 생성 및 소멸시점도 동일, 생성자에서 초기화 하면 안됨 -> 메모리공간에 이미 할당이 이루어진 변수임
static 맴버함수 -> 선언된 클래스의 모든 객체가 공유, 클래스이름으로 호출가능, 객체의 맴버로 존재X
*static 맴버함수 내부에서는 static 맴버변수와 햠후만 호출가능
const static 맴버
const 변수는 선언과 동시에 초기와가 기본 -> 이니셜라이져로 초기화가능
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | const static -> class CountryArea{ public: const static int RUSSIA = 1707540; const static int CANADA = 998467; const static int CHINA = 957290; const static int SOUTH_KOREA = 9922; }; | cs |
요런식으로 초기화 가능
mutable -> const 함수내에서 값변경을 예외적 허용 (잘 안쓰임)
'C , C++, C#' 카테고리의 다른 글
C++ 다형성,상속 간단정리 (0) | 2019.02.26 |
---|---|
[자료구조] 링크드 리스트(C++) (0) | 2019.02.20 |
[자료구조]링크드리스트 삽입 삭제 (C언어) (0) | 2019.02.20 |
[자료구조] C/C++ 단일 링크드리스트 (0) | 2019.02.19 |
c++ 기본 : 계좌관리 프로그램 (0) | 2019.02.18 |