结构而非清除/初始化所有数据

时间:2015-07-03 21:20:12

标签: c++

好的,所以我想我知道我需要做什么,但我不确定该怎么做。

我有这个结构

struct GItemInfo{
string icon = "";
string name = "";
string subname = "";
string rarity = "";
vector<string> ToolTip;
string ToolTipFull;
bool canuse = true;
int depth = 0;
int level = -1;
int leveladjusted = -1;
int slotnum = -1;
bool isslotlocked = true;
int isslothighlighted = 0;
FVector location;
FEntityId id;
float distancetome = 0.0f;
bool istrash = false;
bool ispickuptrash = false;
bool ispickup = false;
bool empty = true;

bool operator<(const GItemInfo& a) const
{
    return distancetome < a.distancetome;
}
};

我使用

vector<GItemInfo> CurrentGearList;

初始化它......问题是...即使我做了

CurrentGearList.clear();
CurrentGearList.resize(0); // Yes i know some of this is voodoo redundant.
CurrentGearList.resize(20); 

ID内部的值仍然存在,并且实际上从未实际重新初始化。 所以,ID结构只是(int,int)..我如何告诉GItemInfo结构将它们初始化为0,0。

我尝试过FEntityId id = {0,0};不喜欢那样。

所以我确定我需要以某种方式在结构构造函数中工作,我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

struct FEntityID{
    int A;
    int B;

    FEntityID(): A(0), B(0){  
    }
};

通过为FEntityID创建默认构造函数,每次创建其对象时,int值将使用0进行初始化。

如果要控制为每个实例初始化struct对象的方式,还应该为它们定义构造函数。