본문 바로가기
C++

explicit &&&& mutable

by 상레알 2009. 1. 15.
명시적인 것만을 허용한다! : explicit                   // 때론 많이 쓰이기도 한다

explicit 키워드는 생성자 앞에 붙어서 묵시적인 호출을 허용하지 않는다는 것을 나타낼 때 사용된다.
-객체 생성 관계를 분명히 하고자 하는경우 사용한다는...

복사생성자에서 배웟던...  A a=10    ->    A a(10)     이렇게 묵시적으로 변환이 이루어지는것을 의미한다.

explicit 선언은 객체 생성 관계를 분명히 하고자 하는 경우 사용이 된다. 일반적으로 자주 사용되지는 않으나

프로그래머에 따라서 모든 생성자에 explicit 선언을 넣어 주기도 한다.


예외를 둔다! : mutable

const로 멤버 함수가 상수화 되면 이 함수는 멤버 변수를 변형시키지 못한다. 그러나 멤버 변수가 mutable 로 선언이 된다면 상수화된 멤버 변수 라 할지라도 데이터 변경이 가능하다.

ex)  
class{
private:
          mutable int val1;
           int val2;
public :
void setdata(int a,intb)const
val1 =a;            // val1  이 mutable 이므로 오류가 나지 않는다
vla2 = b;           //Error  const 함수에는 변경하지않겟다는 의미하는대 mutable도 아니고..그래서 오류
}


'C++' 카테고리의 다른 글

상속의 조건  (0) 2009.01.19
클래스...  (0) 2009.01.16
상속을 하는 이유  (0) 2009.01.16
protected 멤버  (0) 2009.01.15
상속!!  (0) 2009.01.15
클래스와 Static  (0) 2009.01.15
클래스와 const  (0) 2009.01.14
복사 생성자가 호출되는 시점  (0) 2009.01.08
복사생성자  (0) 2009.01.08
const 함수  (0) 2009.01.06