모든 개념을 객체라는 단위로 정의하고, 객체 간 상호작용을 중심으로 기술하는 프로그래밍 패러다임입니다. 여러가지 사물 또는 개념에서 공통적 특성을 추출하여 기능을 간추리는 것을 말합니다.추상화를 통해 구현한 객체의 복잡한 구조를 숨기고 단순한 인터페이스를 제공할 수 있
C++의 빌드과정을 간략하게 설명합니다
C++ Bit Operator 정리
const 키워드는 주로 변수 자료형 앞에 붙어, 해당 변수를 상수화 시킵니다. 설계상 변수를 수정하면 안될 경우, const 키워드를 붙여 변수의 수정을 제한하면, 보다 안전한 코딩이 가능하게 됩니다.const 키워드가 값형 자료형이 아닌 pointer 자료형에 붙을
malloc vs new & free vs delete
얕은 복사란?'복사 생성자'나 '복사 대입 연산자'를 통해 객체를 복사할 때, 멤버변수의 값을 그대로 복사하는 것을 얕은 복사라고 합니다.얕은 복사의 문제점모든 멤버 변수를 값형으로 가지고 있다면 전혀 문제가 되지 않겠지만, pointer type의 멤버변수를 갖고 있
RTTI란?말그대로 런타임 시점에 클래스나 자료형을 확인하는 것을 말합니다.RTTI를 통해서 정적인 자료형, 명시적인 자료형만 확인할 수 있는 것이 아니라, 업캐스팅 된 상태의 파생클래스 자료형까지 확인할 수 있습니다.msdn에서 말하는 C++의 RTTImsdn에서는
직렬화란?데이터를 1Byte 단위 버퍼로 쪼개서 적재하는 것역직렬화란?직렬화된 데이터를 원래 데이터로 복구하는 것
다중상속이란?하나의 파생 클래스가 여러 베이스 클래스로부터 상속을 받는 것입니다.왜 씁니까?기능을 클래스로 모듈화하여, 필요한 여러 기능을 상속 받는 형태로 편리하게 사용 가능하기 때문입니다.어떻게 쓰면 좋을까요?다중 상속과 추상 클래스를 활용하여, 객체 지향 언어의
C++17 버전부터 지원하는 기능입니다. std::string을 인자로 전달할 때 발생하는 불필요한 동적할당을 방지하기 위해서 사용합니다.차이를 명확하게 알기위해서는 const std::string& 타입을 인자로 받을 때와 비교하면 됩니다.
일반 포인터를 이용한 동적 할당의 문제점일반 포인터를 이용한 동적할당은, 프로그래머가 직접 메모리를 추적하고 관리해줘야 하기 때문에, 프로젝트의 규모가 커질 경우 자원 관리에 실패할 가능성이 높아집니다. 스마트 포인터는 일반 포인터의 이런 문제를 해결하기 위해 등장한
함수포인터를 더 쉽고 유연하게 사용하기 위한 클래스입니다. 함수 포인터 문법에 비해서1\. 가독성이 좋습니다2\. 바인드 기능을 활용하면, 특정 인스턴스가 호출하는 멤버함수도 쉽게 담을 수 있으며, std::placeholder::등의 키워드를 사용해 함수의 시그니처와
explicit : 명시적implicit : 암시적explicit 키워드는 클래스의 암시적 형변환을 막아줍니다. 그럼 먼저 클래스의 암시적 형변환이 어떻게 구현되는지 부터 알아야합니다암시적 형변환은 두가지 방법을 통해서 구현할 수 있습니다.1\. 파라미터가 있는 생성자
static 키워드는 굉장히 다양한 곳에서 사용됩니다. 지역변수에 붙기도 하고, 전역변수에 붙기도 하며, 멤버변수에도 붙을 수 있고, 심지어 멤버 함수에 붙을 수 도 있습니다. 어떻게 사용되냐에 따라서 조금씩 다른 동작을 하기 때문에 static 키워드를 하나로 아우르