Adding member boost::ptr_vector<>
我有休闲课:
1 2 3 4 5 6 7 8 9 10 11 12 13 | class CpuUsage { public: CpuUsage(); virtual ~CpuUsage(); void SetCpuTotalTime(CpuCore _newVal); CpuCore GetCpuTotalTimes(); void AddSingleCoreTime(CpuCore& newval); private: CpuCore total; boost::ptr_vector<CpuCore> cpuCores; }; |
和
1 2 3 4 5 6 7 8 9 10 | 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对象添加到cpucore向量中,我应该添加一个指针吗?或者我可以复制值normaly,比如:
1 2 3 | void CpuUsage::AddSingleCoreTime(CpuCore _newVal) { cpuCores.push_back(_newVal); } |
对于cpucore*_newval参数,我有以下错误:../src/usage/cpusage.h:42:错误:"boost::ptru vector>cpusage::cpucore"是私有的../src/nodeinfographer.cpp:73:错误:在此上下文中
向量在这里是私有的问题是什么?
谢谢,
您必须添加一个指向
1 | cpuCores.push_back(&_newVal); |
可能会把事情搞砸。如果您真的想要它(从您的问题中还不清楚),您可以实现一个虚拟构造函数。