effective C++ 이라는 나이많은 책을 읽고 있다.사실 읽고 있은지 꽤 되었다. 뭔가 진도가 잘 나지 않아서 이전에 읽은 내용도 잊기도 했고 해서, 지금 읽는 내용부터 끝까지 정리하고 다시 앞부분을 블로그에 정리해보려 한다.지금 항목은 36번 항목으로 "상속받은
앞선 36번에서는 비가상함수에 대한 재정의를 피하기로 했다.37번에서는 기본 매개변수 값을 재정의하지 않기로 하자는 내용을 다룬다.기본 매개변수란, 클래스 멤버 함수의 파라미터에 인자가 주어지지 않았을 때 기본으로 세팅해 둔 값으로 동작할 수 있게 명시해둔 디폴트값을
앞선 장에서, "is-a" 관계와 public 상속의 관계에 대해 배웠다.하지만 car - engine 의 관계처럼, is-a 로 마냥 public 상속 받아 사용하기엔 애매하고, 안하자니 아쉬운 경우에 대해서 소개한다.이 경우 "has-a" or "is_impleme
public 상속은 "is-a" 관계를 가진다는 것을 보았다. 그렇다면 private 상속은 무엇이며, 왜 있는 기능일지 생각해보고 언제 어떻게 써야할지 생각해보도록 하자. private 상속 private 상속은 일반적인 상속과 달리 부모 클래스의 구현 세부사항을 자식 클래스에서 재사용하는 용도로 사용한다. 즉, 자식 클래스는 부모 클래스의 내부 구현에...
다중 상속을 사용할 때는 복잡성과 유지보수 측면에서 여러 문제를 초래할 수 있어 주의가 필요하다.다중 상속에서 상위 클래스가 중복되는 경우, 다이아몬드 상속 문제가 발생한다. 예를 들어, 클래스 A를 상속받는 B와 C 클래스가 있고, D 클래스가 B와 C 모두를 상속받
이제 이 장 부터는 템플릿 프로그래밍에 대한 내용들이 나온다.템플릿이 어떤 것인지에 대해서 간단히 알기만 해서, 실 활용은 별로 못해봤는데 어떤 내용들이 있는지 자세히 살펴봐야겠다.이 두 기능은 템플릿의 유연성과 성능을 높이기 위한 개념이다. 이를 통해 템플릿의 추상화
위에서 class, typename 은 동일하게 동작한다.템플릿 매개변수를 선언하는 경우의 둘은 완전히 같은 의미를 지닌다.typename의 또다른 의미(기능)로 중첩 의존 이름을 명확히해주는 것이 있다.우선 용어 정리부터 하자dependent name : 템플릿 내
템플릿 기본 클래스에서 this->를 사용하지 않으면 의존 이름에 대한 명확한 컨텍스트가 부족하여 오류가 발생한다. 컴파일러는 템플릿을 처리할 때 특정 타입이 정의된 시점에 해당 타입에 대한 모든 정보를 가지고 있지 않기 때문에, 이름이 의존적인 상황에서는 어떤 이름이
이 책 뒷부분(템플릿, new)의 내용이 너무 이해가 안가서, 다시 앞에서부터 차근차근 보려고 한다. 마침 원래 난 이책을 여러번 읽으려 했으니 급하지말고 천천히 읽으며 정리해보게따.C : 대부분의 기본적인 문법들이 여기서 왔다.객체 지향의 C++ : 클래스를 사용하는
C에서 주로 사용하는 방법인 define은 디버깅 과정에서 혼란을 줄 수 있어서 피하는 것이 좋다.\`\- const\`로 상수를 정의하면 타입 안전성이 확보되고, 디버거에서 확인 가능하며, 스코프를 가지기 때문에 코드의 유지 관리가 용이함.혹시나 포인터에 대한 상수
출처 : Microsoft learnhttps://learn.microsoft.com/en-us/cpp/cpp/smart-pointers-modern-cpp?view=msvc-170Effective C++ 을 보면서 RAII에 대한 내용으로 자원 관리는 객체를