我有休耕类:添加构件的boost :: ptr_vector <>
class CpuUsage {
public:
CpuUsage();
virtual ~CpuUsage();
void SetCpuTotalTime(CpuCore _newVal);
CpuCore GetCpuTotalTimes();
void AddSingleCoreTime(CpuCore& newval);
private:
CpuCore total;
boost::ptr_vector<CpuCore> cpuCores;
};
和
class CpuCore {
public:
CpuCore();
CpuCore(int _coreId, long _user, long _nice, long _sysmode,
long _idle, long _iowait, long _irq, long _softirq, long _steal,
long _guest);
//all variable declarations...
}
对于添加CpuCore对象到cpuCores矢量,我要补充的指针?或者,我可以复制的价值,normaly,如:
void CpuUsage::AddSingleCoreTime(CpuCore _newVal) {
cpuCores.push_back(_newVal);
}
随着CpuCore * _newVal参数,我有以下错误:
../src/usage/CpuUsage.h:42:错误:“升压:: ptr_vector> CpuUsage :: cpuCores'是私人的 ../src/NodeInfoGather.cpp:73:错误:在这种情况下
什么问题的矢量是私人在这里?
感谢,
您应该添加一个指针,'boost :: ptr_vector <>'拥有指针及其指向的内容。为什么不使用'std :: vector <>'? –
我在这篇文章中使用了boost ptr向量:http://stackoverflow.com/questions/2693651/c-vector-of-objects-vs-vector-of-pointers-to-new-objects –
你不似乎在给定的代码上具有多于'CpuCore'的多态性。然而,发布的代码并不真实,“AddSingleCoreTime”的声明和定义不同。 –