반응형

형변환 2

오브젝트 타입에 벨류 타입을 대입하게 될 경우 어떤 현상이 발생할까?

C#에서 값 유형과 개체 유형은 근본적으로 다르며, 둘 중 하나를 다른 유형으로 대체할 수 없습니다. 값 유형은 해당 데이터를 직접 포함하는 유형이고, 객체 유형은 힙에 있는 해당 유형의 인스턴스를 가리키는 참조 유형입니다. 값 유형을 객체 유형으로 대체하거나 그 반대로 대체하려고 하면 두 유형이 호환되지 않음을 나타내는 컴파일 타임 오류가 발생합니다. 예를 들어 int 값을 객체 변수에 할당하려고 하면 int는 값 유형이고 객체는 참조 유형이므로 컴파일 타임 오류가 발생합니다. 값 유형을 객체로 사용하려면 값을 객체 참조로 래핑하여 값을 박스형으로 묶을 수 있습니다. 이렇게 하면 힙에 값의 복사본이 포함된 새 객체가 생성됩니다. 그런 다음 이 객체를 값 유형의 인스턴스인 것처럼 사용할 수 있습니다. 그..

공부/C# 2023.03.05

Dynamic_cast 내부동작은 어떻게 되는가?

Dynamic_cast 글을 읽기 전 가상 함수, 가상 함수 테이블 게시물을 읽으면 더욱 이해하기 편합니다. https://shung2.tistory.com/584 가상 함수와 가상 함수 테이블 개념 및 차이 객체 지향 프로그래밍에서 가상 함수(Virtual Function)는 파생된 클래스에서 재정의할 수 있는 멤버 함수입니다. 기본 클래스와 동일한 구문을 사용하고, 호출되는 동안 파생된 클래스에서 변경되 shung2.tistory.com C++에서 dynamic_cast 연산자는 런타임에 캐스트를 수행하는 데 사용됩니다. 포인터나 참조를 한 유형에서 다른 유형으로 변환하는 데 사용되며, 여기서 대상 유형은 다형성 클래스(최소한 하나의 가상 함수(Virtual Function)가 있는 클래스)입니다. ..

공부/C++ 2022.12.23
반응형