如何初始化具有空值的结构的数据成员数组?

时间:2012-11-04 03:20:19

标签: c++ constructor c++11 initialization data-members

这是我的结构(它位于数据结构类的私有部分):

 private:
 // this is the main node pointer array to keep
 // track of buckets and its chain.
    struct Node {

  /** member variables */
  unsigned int iCID;
  std::string sVoting_PN;
  std::string sTS[T_LITTRAL];
  unsigned int iCounter[12] = {0};


  /** constructor initializes */
  Node(unsigned int CID, std::string PN, std::string TS, unsigned int counter, unsigned int index ) {
    this->iCID = CID;
    this->sVoting_PN = PN;
    this->sTS[index] = TS;
    this->iCounter[CID] = iCounter[CID] + counter;
}

Node *next;
};
Node* nodeArray[TABLE_SIZE];

我想将iCounter数组的所有值初始化为0.我该怎么做?

我试过这个

  unsigned int iCounter[12] = {0};

但它给了我警告,无论如何我必须删除!任何想法或帮助都非常感谢大家。提前谢谢。

1 个答案:

答案 0 :(得分:0)

它反过来了。以下是问题。

unsigned int iCounter[12] = {0};

经过多次不同的尝试后,最终我得到了这种初始化工作方式,没有任何警告和错误。我将此添加到答案部分,以便其他有类似问题的人可以从中获得帮助。

struct Node {
Node(): iCID(0), sVoting_PN("") {

  for(unsigned int l=0;l<T_LITTRAL;l++){

    sTS[l]="";
    if(l<AMOUNT_OF_ARTISTS){
      iCounter[l]=0;
    }
  }

}

  //member variables 
  unsigned int iCID;
  std::string sVoting_PN;
  std::string sTS[T_LITTRAL];
  unsigned int iCounter[AMOUNT_OF_ARTISTS]; 

  Node *next;
};