繁体   English   中英

对象内部的向量/数组,持有另一个类的对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM