字符串的 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。
我正在尝试为标签(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。