У меня есть следующие классы:
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 должен ли я добавить указатель?Или я могу скопировать значение, обычно, например:
void CpuUsage::AddSingleCoreTime(CpuCore _newVal) {
cpuCores.push_back(_newVal);
}
С параметром CpuCore * _newVal у меня возникает следующая ошибка:
../src/usage/CpuUsage.h:42: ошибка: 'boost :: ptr_vector> CpuUsage :: cpuCores' является приватным ../src/NodeInfoGather.cpp:73: error: в этом контексте
В чем проблема приватности вектора здесь?
Спасибо