C_C++ 프로그래밍
-
-
Visual Studio Code에 개발환경 셋팅하기 (VS Code 코테 준비)C_C++ 프로그래밍 2021. 12. 11. 19:36
중지 : ctrl + alt + m)윈도우 환경에서 Dev-C++을 사용했었는데 현재 사용하는 맥북의 경우, Dec-C++를 제공하지 않는다. 이제 vscode로 갈아타자 생각해보면.. 맥, 리눅스, 윈도우 모두 VS Code 사용이 가능하다. 참 좋은 IDE 개발환경인 것 같다. VS Code 설치 아래 사이트에서 다운로드하여 설치를 하자. Download Visual Studio Code - Mac, Linux, Windows Download Visual Studio Code - Mac, Linux, Windows Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download ..
-
[Effective C++] 7. 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자C_C++ 프로그래밍/Effective C++ 2019. 9. 8. 17:29
로재의 개발 일기 파생 클래스에 소멸자를 쓰면?? 다들 파생 클래스를 만들어보신 경험이 있을겁니다.이때 만약에 기반 클래스 포인터로 파생 클래스를 가리키게 된다면?파생 클래스의 소멸자가 정상적으로 작동할까요? 답은 아닙니다. 이번 항목에서는 virtual 소멸자 및 함수에 대해서 말하고 있습니다. nonVirtual.cpp 1234567891011121314151617181920212223242526272829303132333435363738394041#include class Base{ public: Base(){ std::cout
-
[Effective C++] 6. 컴파일러가 만들어낸 함수가 필요 없으면 이들의 사용을 금해 버리자C_C++ 프로그래밍/Effective C++ 2019. 9. 6. 22:51
로재의 개발 일기 컴파일러가 자동으로 생성 컴파일러는 필요에 따라서 생성자, 복사 생성자, 소멸자를 자동적으로 생성을 하게 됩니다.하지만 이를 막고 싶다면 어떻게 해야할까요? 이번 항목은 다음과 같이 제시하고 있습니다.1. 통상적으로 쓰였던 private (friend 접근은 막지 못합니다) 2. friend까지 막을 수 있는 기반 클래스 작성 private를 통해서 막아봅시다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960/* * Made person: rojae * Made date: 2019.09.06 * --- code description --..
-
[CMake] CMake 업그레이드 하는 법C_C++ 프로그래밍/CMake 2019. 9. 5. 21:07
로재의 개발 일기 CMake 업그레이드 방법 boost 라이브러리 find_package를 위해서CMake를 반드시 업그레이드를 해야만 했고 그러면서 기록하는 내용입니다. 버전에 따라서 수정하여 받으면 됩니다. 1234567891011sudo apt remove cmake https://cmake.org/files/v3.12/cmake-3.12.0.tar.gztar -zxvf cmake-3.12.0.tar.gz cd cmake-3.12.0./bootstrapmakesudo make install cmake --versionColored by Color Scriptercs 정상적으로 업그레이드 됐습니다. ※ 본 글은 개인 포트폴리오 혹은 공부용으로 사용하기 때문에, 무단 복사 유포는 금지하지만, 개인 공부..
-
[Effective C++] 5. C++이 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자C_C++ 프로그래밍/Effective C++ 2019. 9. 5. 19:18
로재의 개발 일기 C++이 자동으로 만들어주는 함수 우리들이 만드는 거의 모든 C++ 클래스에 한 개 이상 들어있는 것이 무엇일까요?바로 입니다. 하지만 다들 경험 해보셨을텐데요.딱히 작성을 하지 않아도 컴파일러가 알아서 작성을 해줍니다. 하지만 이 부분에서 의도치 않은 오류가 있을 수 잇습니다. 이번 항목은 그것을 말하고 있습니다. 자동으로 생성이 된다 빈 클래스를 작성을 해보았습니다. 이 클래스를 호출하고 복사 대입하는 코드를 구현해봤어요.1234567891011121314151617181920/* * Made person: rojae * Made date: 2019.09.05 * --- code description --- * 생성자, 소멸자, 복사 생성자가 저절로 생겨난다 */ #include c..
-
[Effective C++] 4. 객체를 사용하기 전에 반드시 객체를 초기화하자C_C++ 프로그래밍/Effective C++ 2019. 9. 3. 20:50
로재의 개발 일기 객체를 초기화하자 C++에서 어떠한 객체를 초기화를 진행했을때완벽하게 그것을 보장을 해줄 수도... 아닐 수도 있습니다. 예를 하나 들어볼까요?int x // 이 변수는 0으로 초기화가 거의 확정이죠. 하지만 다음과 같을 시에는 class Point {int x,y}....Point p; // Point p의 객체의 초기화가 보장되지 못합니다. 이번 항목에서는 다음과 같이 지시하고 있었습니다.1. 기본 제공 타입의 객체는 직접 초기화를 진행한다.(되는 경우도 있고 아닌 경우도 있지만 그냥 모두 초기화하자) 2. 생성자에서 대입을 통한 초기화가 아닌 초기화 리스트를 사용하여 진행하자 3. 여러 번역 단위에 존재하는 비지역 정적 객체들의 초기화 순서 문제를 피하기 위해서 설계하자 이는 비지..