Estou aprendendo c++ por enquanto e tentando criar um vector
tipo de dados personalizado Employee
.
Código Funcionário.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;
}
};
Código Funcionário.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;
}
Quando tentei inicializar vector<Employee>
em MyForm.h, assim:
private: std::vector<Employee^> Employees;
Ocorre um erro em "^": E2244 um membro da classe gerenciada não pode pertencer ao tipo de classe não gerenciada.
Tentei usar ponteiros diferentes, bem como criar um construtor de cópia para a classe Employee (tentei encontrar situações semelhantes com outras pessoas), mas isso causou ainda mais erros. Talvez o erro seja trivial e simples, mas infelizmente não tenho muito tempo para mergulhar na teoria. O que estou fazendo de errado e como posso consertar? Ficarei muito feliz se você puder explicar em detalhes.