gpt4 book ai didi

.net - 字符串的 C++ 含义^

转载 作者:行者123 更新时间:2023-12-01 15:05:37 25 4
gpt4 key购买 nike

我正在尝试为标签(Windows 窗体)制作 setter/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;
}

我想我返回了错误的类型 (String^),但我找不到关于“^”字符的任何内容,当我尝试返回一个 std::string 时,我可以'编译它!有人可以帮助我吗?

最佳答案

String^ 是“对 GC 对象的引用”- 托管堆中存在的对象(即“.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)的好处。

关于.net - 字符串的 C++ 含义^,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28287489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com