我现在正在学习 C++ 并尝试创建vector
自定义数据类型Employee
。
Employee.h代码:
public ref class Employee {
public:
System::String^ name;
int age;
Employee() {
name = "";
age = 0;
}
Employee(System::String^ n, int a) {
name = n;
age = a;
}
};
员工.cpp代码:
#include "Employee.h"
#include <string>
int main() {
std::vector<Employee^> employees;
employees.push_back(gcnew Employee("Alice", 20));
employees.push_back(gcnew Employee("Bob", 22));
return 0;
}
当我尝试vector<Employee>
在 MyForm.h 中初始化时,如下所示:
private: std::vector<Employee^> Employees;
“^”上发生错误:E2244 托管类的成员不能属于非托管类类型。
我尝试使用不同的指针,以及为 Employee 类创建一个复制构造函数(我试图与其他人找到类似的情况),但这会导致更多错误。也许这个错误是微不足道且简单的,但不幸的是我没有太多时间深入研究这个理论。我做错了什么以及如何解决它?如果您能详细解释,我将非常高兴。