2009-10-24 3 views
1

C++/CLI 프로그램에 기존 표준 C++ 클래스를 포함하면 작동합니까?

제 테스트에서 모든 것이 잘 작동했지만 모든 프로그램에서 사실입니까?모든 표준 C++ 기능이 C++/CLI에서 작동합니까?

+1

을 관리되는 C++의 의미는 정확히 무엇입니까? 원래 사용되지 않는 "관리 확장 C++"또는 현재 지원되는 C++/CLI? 나는 후자를 추측하지만 확신 할 때까지 질문/태그를 편집하지 않을 것입니다. – jalf

답변

3

Microsoft가 약속 한 내용입니다. (나는 어제 this video을 보았다. 명시 적으로 언급했는데, 특히 C++ 0x에 nullptr을 추가하면 손상 될 수있다.)

그래, 네이티브 C++ 프로그램을 가져 와서 C++/CLI로 컴파일하면 아니요 코드가 변경되면 예, 계속 작동합니다.

그리고 물론

, 당신은 당신의 코드를 변경하는 경우 (모든 베팅이 꺼져 물론 다음, 대신 새로운 및 기타 "관리"변경 gcnew, 당신은 수도 또는 암호를 해독하지 않을 수 있습니다) 당신을 무엇

5

클래스를 실제로 관리되는 (gc) 클래스로 변경하면, 아니요, 때때로 깨질 수 있습니다. 특히, 삭제 연산자의 의미는 객체가 가비지 컬렉터에 의해 관리되기 때문에 변경됩니다. 객체를 삭제하면 메모리가 해제되지 않을 수 있습니다.

+0

그러나 스택 객체에서 결정적 파괴가 발생하므로 RAII를 사용할 수 있습니다. –