- #include
- #include
- using namespace std;
- class SoSimple
- {
- private:
- int num;
- public:
- SoSimple(int n):num(n)
- {
- }
- SoSimple& AddNum(int n)
- {
- num += n;
- return *this;
- }
- void ShowData() const
- {
- cout<<"num : "<
- }
- };
- void main()
- {
- const SoSimple obj(7);//const 객체 생성
- //obj.AddNum(20);//AddNum 은 const 함수가 아니기 때문에 호출 불가
- obj.ShowData();//ShowData는 const 함수 이기때문에 const 객체를 대상으로 호출이 가능
- _getch();
- }
/*
const 객체와 const 객체들의 특성
변수의 상수화
const int num = 10;
겍체의 상수화
const SoSimple sim(20);
이 객체를 대상으로는 const 멤버함수만 호출이 가능, 데이터 변경 불가
*/
- #include
- #include
- using namespace std;
- class SoSimple
- {
- private:
- int num;
- public:
- SoSimple(int n):num(n)
- {
- }
- SoSimple& AddNum(int n)
- {
- num += n;
- return *this;
- }
- void SimpleFunc()
- {
- cout<<"SimpleFunc : "<
- }
- void SimpleFunc() const
- {
- cout<<"const SimpleFunc"<
- }
- };
- void YourFunc(const SoSimple &obj)
- {
- obj.SimpleFunc();
- }
- void main()
- {
- SoSimple obj1(2);
- const SoSimple obj2(7);
- obj1.SimpleFunc();
- obj2.SimpleFunc();
- YourFunc(obj1);
- YourFunc(obj2);
- _getch();
- }
/*
const 선언유무도 함수 오버로딩 조건에 해당 된다.
void SimpleFunc() const
{
//값만 벼경되지 않는다면 const 가 아닌 변수에 접근도 가능하다.
cout<<"const SimpleFunc"<
}
*/
출처 열혈강의 C++
댓글 없음:
댓글 쓰기