본문 바로가기
프로그래밍 언어/C,C++

C++ explicit

by pagehit 2021. 8. 18.
반응형

implicit type conversion을 막아준다.

 

#include <iostream>

class A {
public:
   int num;
   A(int n) : num(n) {};
};

void printA(A a) {
   std::cout << a.num << std::endl;
}

int main(){
   int n = 26;
   printA(n); // 형 변환되면서 생성자 A가 호출
}

 

#include <iostream>

class A {
public:
   int num;
   explicit A(int n) : num(n){};
};

void printA(A a) {
   std::cout << a.num << std::endl;
}

int main(){
   int n = 26;
   printA(n); // Error!
}
반응형

댓글