![](/img/trans.png)
[英]vector object inside another class initialization vector objects and access the vector objects
[英]Vector/Array inside Object, Holding Objects of Another Class
我正在尝试存储基类 ( employee
) 的对象,或指向另一个类 ( finance
) 对象中向量/数组内的对象的指针。 员工对象的数量取决于用户,因此需要动态工作。 到目前为止,我有这个:
finance.h
#ifndef FINANCE
#define FINANCE
#include "freight.h"
class finance
{
public:
finance();
~finance();
};
#endif // FINANCE
finance.cpp
#include "finance.h"
using namespace std;
finance::finance()
{
vector<employee *> vemployee; //first problem line
}
finance::~finance()
{
}
main.cpp
void add_manager()
{
string name;
name = get_string_input("Please input the name of the employee.");
vManagers.push_back(new manager(name)); //second problem line
ask_employee();
}
Main.cpp
也包含在我所有的.h
文件以及finance.cpp
。 我在 main 和finance.cpp
上都遇到了关于预期主要表达式的错误,但未在范围内声明。
我显然做错了什么,但老实说我不知道矢量是我还没有学过的东西。 如果有办法用数组来做到这一点,我也不介意尝试。
好的,您需要在类声明中保留vManager :
//finance.h file
#ifndef FINANCE
#define FINANCE
#include "freight.h" //assuming you have defined manager class here
class finance
{
public:
finance();
~finance();
void add_manager();
private:
vector<manager*> vManagers;
};
#endif // FINANCE
//finance.cpp file
#include "finance.h"
using namespace std;
finance::finance()
{
}
finance::~finance()
{
for(int i=0; i< vManagers.size(); i++)
{
if(vManagers[i] != NULL)
{
delete vManagers[i];
}
}
}
finance::add_manager()
{
string name;
name = get_string_input("Please input the name of the employee.");
vManagers.push_back(new manager(name)); //second problem line
while(ask_employee()
{
name = get_string_input("Please input the name of the employee.");
vManagers.push_back(new manager(name)); //second problem line
}
}
现在您可以在 main.cpp 中创建和使用财务对象
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.