본문 바로가기

프로그래밍10

[Effective C++ 정리 #8] 소멸자에서 예외 처리 시 발생할 수 있는 문제 및 해결 방안 이 글은 『Effective C++』를 읽고 개인적으로 공부한 내용을 정리한 기록입니다.저는 컴퓨터공학을 전공하지 않았으며, 프로그래밍을 공부하는 과정에서의 이해와 생각을 정리하기 위해 글을 작성하고 있습니다.따라서 내용 중 일부에 오류나 부정확한 설명이 있을 수 있으며, 피드백은 언제든지 환영합니다. 확인 후 수정하도록 하겠습니다.전문적인 해설이 아닌 개인적 시선에서의 정리임을 참고하고 읽어주시면 감사하겠습니다.예외 처리(exception)이 소멸자가 끝나는 것을 막는다!C++에서는 소멸자에서 예외를 던지는 것이 허용되지만, 매우 위험한 행위로 간주됩니다. 이번 아이템에서는 소멸자에서 예외가 발생할 경우 무슨 일이 벌어지는지와 그에 따른 대처 방법에 대해 살펴봅니다.문제 상황: 소멸자에서 예외가 발생할.. 2025. 6. 18.
[Effective C++ 정리 #7] 이걸 안 하면 메모리 누수! 소멸자는 왜 virtual이어야 할까? 이 글은 『Effective C++』를 읽고 개인적으로 공부한 내용을 정리한 기록입니다.저는 컴퓨터공학을 전공하지 않았으며, 프로그래밍을 공부하는 과정에서의 이해와 생각을 정리하기 위해 글을 작성하고 있습니다.따라서 내용 중 일부에 오류나 부정확한 설명이 있을 수 있으며, 피드백은 언제든지 환영합니다. 확인 후 수정하도록 하겠습니다.전문적인 해설이 아닌 개인적 시선에서의 정리임을 참고하고 읽어주시면 감사하겠습니다.[Effective C++ 정리 #7] 다형성(polymorphism)을 위한 기초, 소멸자는 반드시 virtual로 선언하라C++에서 상속을 활용해 다양한 객체를 다루는 경우, 의외로 간과하기 쉬운 치명적인 문제가 있습니다. 바로 기반 클래스의 소멸자를 virtual로 선언하지 않은 경우, 파.. 2025. 6. 17.
로컬에서 작업한 코드를 Github에 처음 올리는 방법! 개발할 때 Git을 이용해서 관리하거나 협업을 해야하는 상황이 많이 있습니다. 하지만 막상 로컬에서 개발한 프로젝트를 처음으로 Github에 업로드하려고 하면 그 과정을 매번 까먹어서 이렇게 기록합니다!!1. Git 저장소 초기화먼저 Git을 사용할 프로젝트 폴더로 이동한 후, 해당 폴더를 Git 저장소로 초기화합니다.cd /path/to/your/projectgit init 💡 참고: 아래와 같은 메시지가 나올 수 있습니다.힌트: Using 'master' as the name for the initial branch.This default branch name is subject to change. To configure the initial branch name to use in all of yo.. 2025. 6. 16.
[Effective C++ 정리 #6] 복사 금지! 컴파일러가 몰래 만든 함수 차단 방법 이 글은 『Effective C++』를 읽고 개인적으로 공부한 내용을 정리한 기록입니다.저는 컴퓨터공학을 전공하지 않았으며, 프로그래밍을 공부하는 과정에서의 이해와 생각을 정리하기 위해 글을 작성하고 있습니다.따라서 내용 중 일부에 오류나 부정확한 설명이 있을 수 있으며, 피드백은 언제든지 환영합니다. 확인 후 수정하도록 하겠습니다.전문적인 해설이 아닌 개인적 시선에서의 정리임을 참고하고 읽어주시면 감사하겠습니다.[Effective C++ 정리 #6] 복사를 막고 싶다면 컴파일러가 만든 함수부터 차단하라C++ 컴파일러는 우리가 명시하지 않아도 복사 생성자와 복사 대입 연산자를 자동으로 만들어줍니다. 하지만 어떤 클래스는 복사가 허용되어선 안 됩니다. 예를 들어, '집 한 채'를 복사해서 또 다른 동일한 .. 2025. 6. 16.
[Effective C++ 정리 #5] 컴파일러가 몰래 생성하는 특별 함수들 이 글은 『Effective C++』를 읽고 개인적으로 공부한 내용을 정리한 기록입니다.저는 컴퓨터공학을 전공하지 않았으며, 프로그래밍을 공부하는 과정에서의 이해와 생각을 정리하기 위해 글을 작성하고 있습니다.따라서 내용 중 일부에 오류나 부정확한 설명이 있을 수 있으며, 피드백은 언제든지 환영합니다. 확인 후 수정하도록 하겠습니다.전문적인 해설이 아닌 개인적 시선에서의 정리임을 참고하고 읽어주시면 감사하겠습니다.[Effective C++ 정리 #5] 컴파일러가 자동으로 생성하는 네 가지 함수C++에서는 우리가 명시적으로 작성하지 않아도, 컴파일러가 자동으로 생성해주는 함수들이 있습니다. 이러한 함수들은 클래스의 생명주기를 책임지는 중요한 역할을 하며, 우리가 직접 작성한 코드보다 먼저 동작하기도 합니다.. 2025. 6. 15.
[Effective C++ 정리 #4] 예측 불가능한 버그를 막는 습관, 객체 초기화는 왜 필수인가? 이 글은 『Effective C++』를 읽고 개인적으로 공부한 내용을 정리한 기록입니다.저는 컴퓨터공학을 전공하지 않았으며, 프로그래밍을 공부하는 과정에서의 이해와 생각을 정리하기 위해 글을 작성하고 있습니다.따라서 내용 중 일부에 오류나 부정확한 설명이 있을 수 있으며, 피드백은 언제든지 환영합니다. 확인 후 수정하도록 하겠습니다.전문적인 해설이 아닌 개인적 시선에서의 정리임을 참고하고 읽어주시면 감사하겠습니다.[Effective C++ 정리 #4] 객체는 반드시 초기화 후 사용하라 — 예측 불가능한 버그의 시작을 차단하는 습관C++은 객체가 자동으로 초기화된다는 보장을 하지 않습니다. 특히 int나 double 같은 빌트인 타입은 초기화를 생략하면 쓰레기 값이 남아 있게 되고, 이를 사용하면 예측할 .. 2025. 6. 15.