2015-02-02 2 views
2

레이블 (Windows Form)에 대한 getter를 만들려고합니다.문자열의 C++ 의미^

public: String^ getLabel1() { return label1->Text; }; 

을하지만 그것을 인쇄하려고하면, 그것은 컴파일되지 않습니다 :

myForm.h 에!

myForm.cpp 에서 :

void Main(array<String^>^args) 
{ 
    Application::EnableVisualStyles(); 
    Application::SetCompatibleTextRenderingDefault(false); 

    Test::MyForm form; 
    Application::Run(%form); 

    form.setLabel1(); 
    std::cout << form.getLabel1() << std::endl; 
} 

내가 잘못된 유형 (문자열 ^) 반환 생각,하지만 난 '^'문자에 아무것도 찾을 수없고, 나는 반환 할 때 a std::string, 나는 그것을 컴파일 할 수 없다! 누군가 나를 도울 수 있습니까?

+4

피상적 유사점에도 불구하고, 이것은 ** 아닙니다 ** C++ – sp2danny

답변

9

String^은 "GC 개체에 대한 참조"- 관리되는 힙 (예 : ".NET 개체")에있는 개체입니다. String* (A A System::String CLR 개체에 대한 포인터 나 std::string (A C 지역 ++ 표준 라이브러리 문자열).에 비해

는 C++ STL cout 스트림, System::String 출력을 지원하지 않는 호환되는 유형 중 첫번째 정렬 화를해야하거나, . 대신 Console::WriteLine를 사용

을 코멘트에 말을 sp2danny - 반복 처리를 다시하기 위해이 하지 C는 ++이다, 이것은 C++로 간주 될 수 C++/CLI,합니다 -와 C 번호에 CIL + CLR의 대안 억양 구문 STL을 포함하여 소스 형식으로 기존 C++ 코드를 사용할 수 있다는 이점.

+0

감사합니다 !!!!! –