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 |