자원해제 delete는 왠만하면 소멸자서 실행하자.(스마트 포인터를 사용해 자동으로 소멸하게끔 해도 좋음) but, 스마트포인터나 trd::shared_ptr은 delete를 사용하지, delete[]를 사용하지 않는다. 동적배열을 사용하였을 경우 delete로는 모든 메모리를 초기화 시킬 수 없다..(에러도 안난다고 하니 조심하자) 자원해제를 일일이 하다...
객체 복사 시 모든 데이터 멤버가 빠지지 않도록 하자. 객체 복사 시 모든 기본 클래스 부분이 빠지지 않도록 하자. 복사 생성자와 대입 연산자 구현할때 주의점 - 한쪽을 이용해 다른 한쪽을 구현하려고 하지 말자 - 필요 시 공통된 동장을 제 3의 함수에 분리하자 - 양쪽에서 이 함수를 호출하도록 구현하자 객체 복사 함수 생성 시 주의해야할 것 - 사용자가 ...
콜리전(Collision)은 언리얼 엔진에서 물리적인 충돌이나 레이 캐스팅 실시간 처리를 해준다. 이러한 물리 시뮬레이션은 Collision Response(콜리전 반응) 및 Trace Response(트레이스 반응) 설정을 통해서 다른 오브젝트 유형과 어떻게 상호작용할지 정의된다. 종류 - 블록(Ignore) 충돌하는 두 오브젝트가 모두 블록이어야 두 오...
operator= 에서는 자기대입에 대한 처리가 빠지지 않도록 하자! 자기대입이란(self assignment)? 어떤 객체가 자기 자신에 대해 대입연산자를 적용하는 것을 말함 w = w; a[i] = a[j]; *px = *py; 같은 값을 같거나 같은 값을 가르키면 그것은 자기대입이 성립됨. 자기대입이 생기는 이유는 여러 곳에서 하나의 객체를 참조하는 ...
의 min, max 함수에 대한 이해랑 숙련도가 부족했다. min, max를 생각을 미처 못했다. - min(a, b) : a와 b를 비교하여 가장 작은 값을 반환한다. - max(a, b) : a 와 b를 비교하여 가장 큰 값을 반환한다. 내 풀이 int solution(vector > sizes) { int answer = 0; vector W; vec...
항목 9: 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자 이유 객체의 생성과 소멸과정 중 가상 함수가 소멸된 상태면 링킹 에러가 발생한다. 파생 클래스의 데이터가 아직 초기화된 상태가 아니기 때문에, C++은 아예 없었던 것처럼 취급하고 파생클래스의 가상 함수는 기본클래스의 가상함수를 기반으로 이뤄진다. 요약 기본 클래스 생성자 호출 시...
예외가 소멸자를 떠나지 못하도록 붙들어 놓자. 소멸자가 호출 되는 경우 1. 정상적으로 객체가 종료되었을 때 2. 예외처리 메커니즘에 의해 객체가 소멸될 때 소멸자가 예외가 있으면 안되는 이유 예를 들어 10의 크기를 갖는 벡터 v가 있다. 함수를 사용한 다음에서야 10개 만큼 메모리가 해제된다. 만약 v의 첫번째 주소에서 문제가 생겨 예외가 발생했다면??...
1. sort 함수 이용하여 strings 정렬하되 사용자정의 함수인 'cmp()' 사용 2. 비교 함수 cmp를 만들어 조건에 맞게 되있으면 true, 아니면 false - Code #include #include #include using namespace std; int N; vector solution(vector strings, int n); bo...
배열에서 반복되는 수를 제거하여 나열하라. algorithm 라이브러리에서 'unique'라는 키워드를 이용해 배열을 중복된 수가 없이 나열시킨다. 그 후 erase라는 vector 명령어를 통해 나열되고 필요없는 데이터들은 지운다. 굉장히 깔끔하고 멋진 코드인 것 같다. #include #include #include using namespace std;...