使用另一个 class 中的原子私有变量访问 class 的成员

Accessing member of a class with atomic private variables in another class

我正在尝试使用对象向量访问 class A 中定义的原子私有变量。这个对象向量在另一个头文件中定义的其他 class B 中按值传递。从向量中检索值时,我得到的值为 0

我在 class 中几乎没有 std::atomic 私有变量 say class A

A.hpp 文件

class A
{ 
  public: 
  vector<A> updatePktCount();
  private:
  std::atomic pktCount;
  std::atomic recvPkt;
  std::atomic droppedPkt;

};

A.cpp

//不同端口会有不同的pkts 向量a[2]; // 2 因为我有 2 个端口 ID's

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; 
}

Class B 在不同的头文件中 B.hpp

class B: public A {

   void getPacketCountFromA();
};

B.cpp 文件

void B::getPacketCountFromA()
{
   vector<A> storeValue; 
   A a; 
   storeValue = a.updatePktCount();
   for(auto i = storeValue.begin(); i != storeValue.end(); ++i)
   {
      // print values
   }
}

我在 A 中为 2 portId 创建了一个对象向量,例如 vector<A> a[2] 但是当我在 getPacketCountFromA 中检索该向量时,我得到的向量大小为 2 但所有向量中的值为 0

我是不是做错了什么?

Result

size of vector is 2 pktCount = 0 recvPkt = 0 droppedPkt = 0

recvPkt = recvPkt++; 正在检索 recvPkt 的值,递增 recvPkt,然后将检索到的值 (0) 存储回 recvPkt,丢失增量的作用。只需增加值:

++recvPkt;

其他变量也一样。