fullstack

[C++] explicit 키워드

Language/C++

explicit 키워드는 생성자 앞에 붙여 묵시적인 호출을 허용하지 않을 때 사용 된다.

즉 객체 생성 관계를 분명히 하고자 할 경우 사용하며, 모든 생성자의 explicit 키워드를 붙이는 프로그래머도 많다.

아래는 explicit 키워드 사용 예이다.


1
2
3
4
5
6
7
8
9
10
11
12
13
class AAA
{
public:
    explicit AAA(int n) { cout << n << endl;}
};
 
int main()
{
    AAA a1(10);
    AAA a2 = 10// error
 
    return 0;
}



AAA a2 = 10; 은 묵시적으로 AAA a2(10)  으로 변환되나 explicit 키워드로 묵시적인 호출을 허용하지 않았으므로 에러가 나타난다.


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

[C++] 상속 (Inheritance)  (0) 2015.12.03
[C++] mutable 키워드  (0) 2015.12.03
[C++] static 키워드  (0) 2015.12.02
[C++] const 키워드  (0) 2015.12.02
[C++] 복사 생성자  (0) 2015.12.02