Я пытаюсь получить доступ к частным переменным атома, определенным в class A
, используя вектор объектов. Этот вектор объектов передается по значению в другом class B
, определенном в другом заголовочном файле. При получении значения из вектора я получаю значение как 0
У меня есть несколько std::atomic
частных переменных в классе, скажем, класс A
A.hpp file
class A
{
public:
vector<A> updatePktCount();
private:
std::atomic pktCount;
std::atomic recvPkt;
std::atomic droppedPkt;
};
a.cpp
// для разных портов будут разные pkts
вектор а [2]; // 2, так как у меня 2 идентификатора порта
vector<A> A::updatePktCount(int portId)
{ a.push_back(A());
//some function that gets packet details based on portId
pktCount = getPacketCount(int portID, int recvPkt,int pktCount,int droppedPkt);
pktCount = pktCount++;
recvPkt = recvPkt++;
droppedPkt = droppedPkt++;
a.push_back(A());
return a;
}
Класс B в другом заголовочном файле B.hpp
class B: public A {
void getPacketCountFromA();
};
B.cpp
file
void B::getPacketCountFromA()
{
vector<A> storeValue;
A a;
storeValue = a.updatePktCount();
for(auto i = storeValue.begin(); i != storeValue.end(); ++i)
{
// print values
}
}
Я создал вектор объектов в A, например, vector<A> a[2]
для 2 portId, но когда я извлекаю этот вектор в getPacketCountFromA
, я получаю вектор размером 2
, но все значения в векторе 0
Я что-то здесь не так делаю?
Результат
размер вектора 2
pktCount = 0
recvPkt = 0
dropPkt = 0