const 멤버변수는 초기화가 불가능 하지만 클래스에서 값을 준채로 초기화 할 수 없기에
생성자에서 : 키워드를 이용하여 초기화 한다.(상속이 아니다!!!)
아무튼.. const 멤버 변수가 하나라도 있으면 모든 생성자에 영향을 주는 듯
            
                    
                    
| constructor(variables ...) : const variable(parameter) | 
생성자에서 : 키워드를 이용하여 초기화 한다.(상속이 아니다!!!)
| class class_name { const int key; // const member variable class_name(int _key) : key(_key) { } };  | 
아무튼.. const 멤버 변수가 하나라도 있으면 모든 생성자에 영향을 주는 듯
class student
{
	const int id;
	int age;
	char name[20];
	char subject[30];
public:
	student()
	{
	}
	student(int _id) : id(_id)
	{
	}
	student(int _id, int _age, char *_name, char *_subject) : id(_id)
	{
		age = _age;
//		id = _id;
		strcpy(name, _name);
		strcpy(subject, _subject);
	}
| 1>d:\cpp\ch12\ch12\ch12.cpp(13): error C2758: 'student::id' : 생성자 기본/멤버 이니셜라이저 목록에 초기화해야 합니다. 
1>          d:\cpp\ch12\ch12\ch12.cpp(7) : 'student::id' 선언을 참조하십시오. 
1>d:\cpp\ch12\ch12\ch12.cpp(44): error C2582: 'operator =' 함수는 'student'에서 사용할 수 없습니다.  | 
+
const 멤버 함수
const 함수 내에서는
값을 조작할 수 없으며(포인터 값 return도 불가)
const 함수만 호출이 가능하다.
 
const 멤버 함수
| ret_type function(parameter ...) const | 
const 함수 내에서는
값을 조작할 수 없으며(포인터 값 return도 불가)
const 함수만 호출이 가능하다.
'Programming > C++ STL' 카테고리의 다른 글
| 연산자 오버로딩 (0) | 2014.03.04 | 
|---|---|
| c++ explicit (0) | 2014.02.28 | 
| deep copy / shallow copy < object copy (0) | 2014.02.27 | 
| crt0.o / crtexe.obj (0) | 2014.02.27 | 
| c++ constructor (0) | 2014.02.26 | 
