본문 바로가기

Programming/열혈 C++ 프로그래밍(저자 윤성우)13

Ch 05. 복사 생성자(Copy Constructor) 모든 내용은 [윤성우 저, "열혈 C++ 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # C++ 스타일의 초기화 - 객체 생성의 예 int num=20; (묵시적 변환, 자동변환) int num(20); - 위와 같은 묵시적 변환이 싫다면 생성자에 explicit 키워드를 사용하자. 그러면 더이상 대입연산자를 이용한 객체 생성 및 초기화는 불가능하다. # 복사 생성자의 형태 클래스명(const 클래스명 &copy) // const 선언은 필수가 아니나, &는 필수임(안그러면 무한루프에 빠진다.) :...(멤버 이니셜라이저를 통해 멤버대멤버 복사) { ...(필요하다면 깊은 복사) ...(다른 것들도 수행가능.. 2020. 8. 17.
Ch 04. 클래스의 완성 모든 내용은 [윤성우 저, "열혈 C++ 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # 좋은 클래스의 조건 1. 정보은닉 2. 캡슐화 # 정보은닉 1) 멤버변수를 private 선언하고, 2) 멤버변수에 접근하는 멤버함수를 별도로 정의 => 안전한 형태로 멤버변수의 접근을 유도 e.g. Get() : private 멤버변수의 값을 얻게하는 함수 Set() : private 멤버변수의 값을 설정하는 함수 # 멤버함수의 const 선언은, "이 함수 내에서는 멤버변수에 저장된 값을 변경하지 않겠다." 라는 의미이다. - const 선언을 한 멤버함수 내에서는 const 선언 함수만 호출 가능해진다. - 이와 .. 2020. 8. 17.
Ch 03. 클래스의 기본 모든 내용은 [윤성우 저, "열혈 C++ 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # 특정 상수들이 특정 구조체나 클래스에만 의미있는 상수들이라면, enum(열거형)의 활용이 가능하다. 1) enum을 구조체 또는 클래스 안에 넣어 활용한다. 2) 1)이 부담스럽다면, 이름공간(namespace)을 이용해 상수가 사용되는 영역을 명시한다. # 클래스 안에는, 1) 변수의 선언(멤버변수) 2) 함수의 원형선언(멤버함수) 으로 구성하고, 인라인화 할 것이 아니라면 가능하면 함수의 선언과 정의를 분리하자. (함수의 선언과 정의를 분리해도 inline 키워드를 사용하면 인라인화가 가능하다.) - 함수가 클래스 .. 2020. 8. 17.
Ch 02. C언어 기반의 C++ 2 모든 내용은 [윤성우 저, "열혈 C++ 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # const 사용방법 및 그 의미 1) const int => 변수값 변경불가 2) const int * ptr => 포인터를 통해 변수값 변경불가 3) int * const ptr => 포인터가 가리키는 값(변수의 주소) 변경불가 4) const int * const ptr => 2, 3) 둘다 적용 # 메모리 구조 - 코드영역 - 데이터영역 : 전역, static 변수 - 힙영역 : 동적할당(malloc) 및 해제(free) (런타임에 크기 결정) - 스택영역 : 지역변수, 매개변수 (컴파일 타임에 크기 결정) # C.. 2020. 8. 17.