字符串的 C++ 含义^

C++ meaning of String^

我正在尝试为标签(Windows 表单)制作 getter。

myForm.h中:

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

但是当我尝试打印它时,它无法编译!

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;
}

我想我 return 打错了类型 (String^),但是我在 '^' 字符上找不到任何东西,当我尝试 return a [=12= 】,编译不了! 有人可以帮助我吗?

String^ 是 "Reference to a GC object" - 托管堆中存在的对象(即“.NET 对象”)。与 String*(指向 System::String CLR 对象的指针或 std::string(本地 C++ 标准库字符串)相比。

C++ STL cout 流不支持输出 System::String,您必须先将其编组为兼容类型,或改用 Console::WriteLine

重申sp2danny在评论中所说的,这是不是 C++,这是C++/CLI,可以认为是CIL+CLR的C++风格语法C# 的替代方案,好处是能够使用源代码形式的现有 C++ 代码,包括 STL。