对象内的矢量/数组,持有另一类的对象

时间:2015-10-24 08:24:12

标签: c++ arrays class object vector

我试图存储基类(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上都遇到了关于预期的主表达式并且没有在范围中声明的错误。

注意:

我显然做错了什么,但老实说我不知道​​因为载体是我还没有被教过的东西。如果有一种方法可以使用数组,我也不介意尝试。

1 个答案:

答案 0 :(得分:1)

好的,你需要在课堂声明中保留 vManagers

//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中创建和使用财务对象