위 코드의 실행 결과는 'go() called on Sub' 이다.하지만 이는 오버라이딩된 것이 아닌 Super의 go()와는 완전 별개인 새로운 메소드 go()를 정의한 것 이다.위 코드의 실행 결과는 'go() called on Super'가 출력된다.ref는 S
1. std::move move라는 이름과 달리 이동을 수행하지 않는다. 단지 자신의 인수를 오른값으로 캐스팅한다(무조건). 물론 오른값은 이동의 후보이기 때문에 어떤 객체에 std::move를 적용한다는 것은 컴파일러에게 그 객체가 이동에 적합하다는 점을 말해주는 것
C++ 에서 함수호출과 객체 선언은 문법적으로 햇갈리는 부분이 있다.출력 값 : 위의 출력 값은 공백입니다.이유는 A의 생성자가 아닌 A를 리턴하는 a라는 함수를 선언한 것으로 해석하기 때문입니다. C++ 11부터 도입된 Uniform Initialization(유니폼
컴파일러는 Attribute 정보를 사용해 정보 메시지를 생성 하거나 특성 사용 코드를 컴파일할 때 특정한 동작을 할 수 있다. 사용법은 아래와 같다.함수의 선언에서만 가능하며, 함수가 return문을 실행 하거나 함수의 끝에 도달 하여 함수가 반환되지 않음을 나타낸다
게임 엔진에서 기존에 사용하던 boost::dynamic_bitset을 직접 구현해보기로 했다.인터페이스를 기존의 것을 그대로 사용했다.최대한 std::bitset을 활용하는 방향으로 생각했고, +1 사이즈씩 증가하는 동적배열과 정해진 offset만큼을 늘려나가는 st
RAII (Resource Acquisition Is Initialization) 사실상 C++에만 존재하는 디자인패턴으로 직역하면 '자원 획득은 초기화이다' 라는 의미이다. 가비지 콜렉터가 존재하지 않는 C++에서 보다 안전하게 동적 자원을 관리할 수 있게 해주는 패