CLR이 자동 메모리 관리(Automatic Memory Management)기능을 제공.자동 메모리 관리 기능의 중심에 가비지 컬렉션이 있다.가비지 컬렉터도 소프트웨어이기 때문에 CPU와 메모리 같은 컴퓨팅 자원을 소모한다.기본적으로 C- CLR은 실행되는 코드에 대
메모리 관리자가 자동으로 관리하는 메모리간단하게 말하면 동적할당해서 생성된 오브젝트들은 관리되는 힙에 할당된다.유니티의 관리되는 힙(managed heap)은 축소보다 더 쉽게 확장될 수 있다. 그러니까 메모리를 먹는 괴물이 되기 쉽다는 뜻이다.유니티의 가비지 컬렉션
메모리 관리자가 힙에서 사용되지 않는 영역을 조사.오브젝트 생성 등의 메모리 할당 요청이 일어나면, 관리자가 할당되어 있지만 사용하지 않는 메모리 제거. 이 과정은 메모리 할당을 할 수 있을만한 크기의 메모리가 확보될 때까지 반복된다.힙 블록이 사용되고 있는지 확인하기
String, StringBuilder 둘 모두 문자열을 나타내지만 다르게 구현되어 있습니다. String 은 기본적으로 변경할 수 없는 형식(불변객체)입니다. 즉, String 객체를 수정하는 것처럼 보이는 각 작업들은 사실 새 문자열을 만드는 것과 같습니다.광범위한
언리얼엔진에서 클래스를 잘못 만들거나 했을 때 클래스를 삭제하려고 보면 위와 같이 삭제 버튼이 비활성화 되어있는 것을 알 수 있다.아래에서는 삭제하려는 클래스(MyActor)를 삭제하는 순서에 대해 설명한다.MyActor.cpp 와 MyActor.h 모두 제거한다.역시
예를 들어 플레이어가 부채꼴 모양의 스킬을 사용했을 때, 적이 그 스킬의 범위 안에 들어오는지 판단하기 위한 방법벡터의 내적을 응용해서 부채꼴 안에 타겟 오브젝트가 들어오는지 아닌지를 판단
5. 객체의 클래스 타입에 따른 new 처리자 구현 출력 6. 클래스 템플릿을 활용한 일반화된 new 처리자 클래스
try에서 동적 메모리에 할당하려는 배열의 SIZE가 너무 크기 때문에 예외를 던진다.catch에서 bad allocation 예외를 출력한다.
사용자정의 스마트포인터로 포인터의 암시적 변환을 따라해보자스마트포인터의 암시적 변환 설계를 알아보자멤버 함수 템플릿을 사용해보자
혹시 사용자로 하여금 함수의 매개변수 타입을 명시적으로 선언하도록 할 수 없을까?그러니까 아래같은 경우를 원천봉쇄할 수는 없을까?explicit 키워드를 사용하면 생성자 혹은 operator 등에서 타입을 명시적으로 나타내야만 컴파일러가 통과시켜주도록 강제할 수 있다.
[Effective C++] 항목 21: 함수에서 객체를 반환해야 할 경우에 참조자를 반환하려고 들지 말자