열혈강의 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

+ Recent posts