열혈강의 5장
복사생성자 정리해야함 꼭!!
class test{
private:
char *name;
public:
test(char* _name){
name = new char[strlen(_name)+1];
strcpy(name, _name);
}
}
char* 에 대한 이해
const
일반 함수
const 함수
우선 순위는 일반 함수가 더 높다.
=====================================
const 정리
1. const 멤버변수를 정의할 때에는 초기화 리스트를 사용해야 한다.
class aaa{
private:
const int x;
public:
aaa(int _a) : x(_a){};
}
--->> const로 정의 되었기 때문에 초기 생성자가 호출 될 때에는 이미 변수에 쓰레기 값이 들어가있어 재정의가 불가능!
2. const 멤버 함수
1. 멤버함수가 상수화되면 이 함수를 통해 어떠한 멤버변수의 변경이 불가능해진다.
2. 상수화된 멤버함수 내에서는 const함수를 제외한 모든 함수를 부를 수 없다.
3. 상수화된 멤버함수는 멤버변수의 포인터를 리턴받을 수 없다.
3. const 객체
상수화된 객체는 어떠한 멤버변수의 조작도 불가하며, 오직 상수화된 멤버 함수만 불러올 수 있다.
(일반 객체에서 상수화된 멤버함수를 불러오는 것은 가능하다.)
-->> const에 의한 함수 오버로딩이 가능하다.
=============================================
explicit 키워드를 자주 사용하는 습관도 필요할 수 있다.
'C++' 카테고리의 다른 글
[C++] virtual 소멸자, virtual table // 열혈강의 (0) | 2016.12.05 |
---|---|
[C++] 상속에 대하여 // 열혈강의 (0) | 2016.12.01 |
[C++] 기초3 // 열혈강의 (0) | 2016.11.30 |
[C++] 기초2 // 열혈강의 (0) | 2016.11.30 |
[C++] 기초1 // 열혈강의 (0) | 2016.11.28 |