면접 공부하면서 글을 쓰는거라 내방식 대로 서술함. 다소 두서가 없을 수 있음. 1. typedef : 새롭게 타입을 만들지 않고, 이미 정의된 타입에 또다른 이름을 부여하는 것(참조와는 다름) : ex) typedef double* d_ptr; --> double* 타입에 또 다른 이름인 d_ptr을 부여함. : ex) d_ptr attack; --> double* 형의 attack이라는 변수 1.1 typedef를 쓰는 경우는 언제일까? : 이름이 너무 길 때, 간편하게 쓸 수 있음 : ex) void ProcessPacket(const std::vector& val); : 위의 ProcessPacket이라는 함수의 파라미터는 단 하나인데, 엄청나게 길다 .... 이럴 때 쓰면 좋다. : typede..
면접 대비용으로 작성한 것이라 나를 제외한 보는 사람에겐 두서 없어 보일 수 있음. 1. const 는 일단 절대 변경 되지 말아야 할 것을 지정해주는 것임. 우리가 코드를 작성할 때 const에 대한 변경을 시도한다면 컴파일러가 잡아낸다. 2. const 포인터 int* myScore; myScore = new int[50]; myScore[3]=10; 위 코드가 있다고 가정해보자. myScore는 50칸 짜리 int형 배열을 가리키고 있다. myScore가 가리키는 데이터가 변경이 되지 않게 하려면 위 코드에서 int* myScore --> const int* myScore 혹은 int const* myScore로 변경해주어야 한다. 이렇게 된다면 위 코드에서 myScore[3] =10 부분에서 컴파..
면접대비용으로 정리한거라 남들이 보기에 다소 두서 없을 수 있음 참고바람 1. 이동 시맨틱은 이동 생성자, 이동 대입 연산자를 통해 지원함. 이동 생성자, 이동 대입 연산자는 원본 객체 --> 새로운 객체로 복사 --> 원본 null로 초기화 의 과정이다. 즉 객체에 대한 메모리 소유권을 이동함. 그 결과 댕글링 포인터나, 메모리 릭 발생을 예방함. 2. 이동 시맨틱은 r-value 참조로 구현됨. 내가 어떤 클래스를 구현했고, 그 클래스가 이동 시맨틱으로 동작하게 하려면 위에서 언급한 1 2 3 4 5 6 class LiverPool { public: LiverPool(LiverPool&& val) noexcept; // move construtor LiverPool& operator=(LiverPoo..