관리 된 C ++ ^ (핸들) -> 무엇이며 참조 및 포인터와 어떤 관련이 있습니까?

StackOverflow https://stackoverflow.com/questions/1820841

  •  10-07-2019
  •  | 
  •  

문제

관리되는 C ++의 핸들에 대한 핸들의 차이점은 무엇입니까?

와 같은:

System::String^ str = gcnew System::String();

그리고 평범한 C ++ 포인터?

또한 C#에있는 참고 문헌과 어떤 관련이 있습니까?

도움이 되었습니까?

해결책

당신은 (오래된) 관리 C ++에 대해 이야기하고 있지만 C ++/CLI에 대해서는 이야기하고 있습니다.

C#에서는 코드가 동일합니다

System.String str=new System.String();

C ++/CLI에서 객체에 대한 핸들은 C#의 참조와 동일합니다. 참조 계산, 쓰레기 수집기 등이 있습니다.

반면에 일반적인 C ++ 포인터는 (대부분의 경우) 관리되지 않은 물체에 대한 포인터입니다. 물론 관리 된 객체에 C ++ 포인터를 가질 수 있습니다. C# (안전하지 않은 코드)에서 사용 가능한 포인터가있는 방식만으로도됩니다. 바라보다 여기 C#의 포인터에 대한 자세한 설명 및 여기 C ++/CLI의 포인터에 대한 자세한 내용은 이 포인터는 쓰레기 수집가가 처리하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top