传染媒介全球传染媒介空

时间:2014-04-27 22:59:03

标签: c++ class vector

我有一个有两个全局向量的类。一个是结构的矢量,另一个是结构的矢量矢量。它是这样的:

class CNewDisplay:
{
protected:

//Vector of structures
struct FP
{
....
}
std::vector<FP> FP_list;

//Vector of vectors of structures
struct INSTRUCTIONS
{...
}

std::vector<INSTRUCTIONS> Instruction_list;
std::vector< std::vector<INSTRUCTIONS> > Past_Instructions;

public:
    std::string loop_planes(..)
    void fill_instruction_vector(...)

所以,第一个结构向量,我在loop_planes(...)中初始化并在类公共函数中使用整个程序而没有任何问题。向量Past_Instructions的向量,我填写一个线程函数(它不在类公共函数中,因为它在_beginthread中使用,它需要属于void(_cdlec*)(void*))类型:

void py_embed (void*data){
...
CNewDisplay dlg;
dlg.fill_instruction_vector(...)
...
}

填充Past_Instructions

的功能
void CNewDisplay::fill_instruction_vector(...){
    ....
    Past_Instructions.push_back(Instruction_list);
    Instruction_list.clear();
    //The size of the `Past_Instructions` is correct here
}

py_embed()功能退出后,Past_Instructions为空。我猜这与void py_embed(void)不属于班级公共职能有关,但我不知道&# 39;理解为什么因为void fill_instruction_vector(...)调用并填充Past_Instructions向量,而且Past_Instructions是全局的。有人可以解释一下吗?

注意:将向量传递给类的公共成员不起作用。

0 个答案:

没有答案