explicit2 [C++] Explicit 생성자 Explicit 생성자 explicit a. 명백한, 뚜렷한(clear), 명시적인 - 직접 초기화 (direct initialization) : OFile fi("a.txt");와 같이 '=' 없이 초기화 하는 것 - 복사 초기화 (copy initialization) : OFile f2 = "a.txt"; 와 같이 '=' 사용해서 초기화 하는 것 함수 인자 전달시 복사 초기화를 사용한다. foo("hello")를 보낸다는 것은 hello 이름으로 File이 error 없이 생성이 된다. 특정 클래스 설계시 복사 초기화를 사용하지 못하게 하는 것이 좋을 때가 있다. #include class OFile { FILE* file; public: OFile(const char* filename) { file.. 2021. 8. 20. [C++] Explicit Casting (명시적 캐스팅) C++ Explicit Casting (C++ 명시적 캐스팅) C의 캐스팅이 논리적이지 않고, 위험성이 있으며, 버그 가능성이 높다. 그래서 C++에서는 새로운 캐스팅 방법을 소개하고 있다. C언어의 캐스팅 방법 : int* p1 = (int*)malloc(sizeof(int)*10); // C언어의 캐스팅 방법 : C++에서도 사용은 가능하다. C++의 캐스팅 방법 : #include #include int main() { int* p1 = static_cast(malloc(sizeof(int)*10)); // C++ 에서 사용하는 캐스팅 방법 free(p1); } C언어 방식의 캐스팅의 단점 : 아래 두 가지 경우가 대표적인 c언어에서 발생할 수 있는 캐스팅 문제이다. 단점 예제 (1) : #incl.. 2021. 8. 14. 이전 1 다음