在头文件的几个类(在 vlr 命名空间中)中,我有一个这种形式的公共成员:
std::multiset<classA,classB::ClassC> data_;
在我的程序中,它在某处被清空,因此我想创建一个缓冲区以在其内容丢失之前存储它。所以在每一行声明的标题类中的旧成员下,我添加了这样一行:
std::multiset<classA,classB::ClassC> data_buff_;
然后为了缓冲我写了一些 .cpp 文件:
data_buff_.insert(data_);
并在此处获取errorC4430:缺少类型说明符,假定为 int。 你能帮我吗,我应该如何正确缓冲这些数据,因为我试图在我得到错误的行中给出命名空间,但没有任何帮助。
非常感谢!- - - - - - - - - 更新 - - - - - - - -
类A.h:
namespace vlr {
class A{
// some unimportant things
}
}
B类.h:
namespace vlr {
class B{
// some unimportant things
public:
class C{
// some unimportant things
}
}
}
D类.h:
#include <set>
#include "ClassA.h"
#include "ClassB.h"
namespace vlr {
class D {
public:
std::multiset<classA,classB::ClassC> data_;
std::multiset<classA,classB::ClassC> data_buff_;
// some other methods and members
}
}
类E.h:
#include <set>
#include "ClassA.h"
#include "ClassB.h"
namespace vlr {
class E {
public:
std::multiset<classA,classB::ClassC> data_;
std::multiset<classA,classB::ClassC> data_buff_;
// some other methods and members
}
}
最终的.cpp:
#include <set>
#include "ClassA.h"
#include "ClassB.h"
#include "ClassD.h"
#include "ClassE.h"
namespace vlr{
// something
data_buff_.insert(data_);
data_.clear();
}