C#에서의 종료자종료자 (Finalizer) / 소멸자 (Destructor) 는 해당 클래스의 인스턴스가 소멸될 때 불리는 메소드이다. 종료자의 특징종료자는 구조체에서 정의할 수 없으며, 클래스에서만 사용한다.클래스에는 종료자가 하나만 있을 수 있다.종료자는 상속하거나 오버로딩(파라미터x) 할 수 없다.종료자를 호출할 수 없다. 자동으로 호출된다.CLR의 가비지 컬렉터가 객체가 소멸되는 시점을 판단해서 종료자를 호출한다.종료자는 한정자(접근지정자x)를 사용하거나 매개 변수를 갖지 않는다.종료자 예제
유니티[C#]를 이용하여 Random.InitState()로 동일한 랜덤 값 얻기일단 랜덤 한 값을 얻고 싶다면, Random.Range()로 만들 수 있을 것이다.그렇다면 결과는 당연히 매번 다른 랜덤값이 출력될 것이다. 하지만 이 결과를 Random.InitState()를 이용하여 매번 동일하게 만들 수 있다.이 부분을 추가하고 다시 실행해 보면 이 결과 값을 기억하고 다시 실행해 봐도 이렇게 동일한 값이 나오는 것을 볼 수 있다.시드가 동일하면 동일한 값으로 동일한 알고리즘을 연산하기 때문에 값이 항상 똑같다. 게임개발로 치면, 클라이언트 하고 서버와의 랜덤 동기화를 위해서 사용하는 것이 바로 시드이다. 출처 및 참고: 강의 짱 잘하시는 울 유니티 선생님 수업
cout프로그램에 무언가를 출력하기 위한 함수이다.C++의 스트림 유형의 객체 출력하려는 값의 자료형을 컴파일러가 검사할 수 있다.출력하려는 값의 형에 따라 적절한 함수를 호출한다.모양cout "C++";객체 삽입연산자 문자열 방향이 정보의 흐름을 상징cout : 문자열(string), 수(number), 문자(character) 들을 포함한 여러 가지 다양한 정보들을 출력하는 방법을 알고있는, 미리 정의 된 객체 cout headercout을 사용하려면 iostream을 include 해야 한다.1#include iostream>cscout 예제12345678#include iostream> int main(){ std::cout "Hello C++" std:..
리플렉션 (Reflection)➡️ 어떤 Type에 대한 정보를 가져오거나 접근하는 등의 작업을 런타임에 동적으로 수행할 수 있도록 해주는 기능이다.리플렉션을 사용하면 런타임에서 메서드를 호출하거나 필드의 값을 바꾸는 등의 작업을 할 수 있다. 다음은 리플렉션을 이용해서 할 수 있는 것들이다.어셈블리 내의 형식에 대한 메타데이터에 접근할 수 있으며, 여기는 전체 형식 이름, 멤버 이름, 특성 등이 포함된다.컴파일 타임에 정의되는 바인딩 대신 메타데이터를 사용해서 런타임에 동적으로 형식의 멤버를 호출할 수 있다.리플렉션은 어셈블리에 포함된 메타데이터를 검사하는 프로세스다.리플렉션을 통해 어셈블리 내의 모든 형식을 열거하고 특정 조건에 부합하는 정보를 찾는 것이 가능하다.형식에 접근할 때는 System.Ty..
템플릿(Template)함수나 클래스를 개별적으로 다시 작성하지 않아도, 여러 자료 형으로 사용할 수 있도록 하게 만들어 놓은 틀이다.템플릿을 사용하면 타입마다 별도의 함수나 클래스를 만들지 않고, 여러 타입에서 동작할 수 있는 단 하나의 함수나 클래스를 작성하는 것이 가능하다.C#의 제네릭과 비슷하다고 생각하면 된다. 함수 템플릿(Function Template)클래스 템플릿(Class Template)이렇게 두 개로 나뉜다.함수 템플릿(Function Template)함수의 일반화된 선언을 의미한다. 함수 템플릿을 사용하면 같은 알고리즘을 기반으로 하면서, 서로 다른 타입에서 동작하는 함수를 한 번에 정의할 수 있다.임의의 타입으로 작성된 함수에 특정 타입을 매개변수로 전달하면, C++ 컴파일러는 해..
Inline 함수C++에서 함수의 호출은 꽤 복잡한 과정을 거치므로, 약간의 시간이 걸리게 된다.이때 함수를 실행하는 시간이 오래 걸린다면, 함수를 호출하는데 걸리는 시간은 전혀 문제가 되지 않는다.하지만 함수의 실행 시간이 매우 짧다면, 함수 호출에 걸리는 시간도 부담이 될 수 있다.C++에서는 이러한 경우에 사용할 수 있는 인라인 함수(inline function)라는 것을 제공한다.인라인 함수는 호출될 때 일반적인 함수의 호출 과정을 거치지 않고, 함수의 모든 코드를 호출된 자리에 바로 삽입하는 방식의 함수이다.이 방식은 함수를 호출하는 데 걸리는 시간은 절약되나, 함수 호출 과정으로 생기는 여러 이점을 포기하게 된다. 따라서 코드가 매우 적은 함수만을 인라인 함수로 선언하는 것이 좋다. ⚠️인라..