好的,所以我想我知道我需要做什么,但我不确定该怎么做。
我有这个结构
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};不喜欢那样。
所以我确定我需要以某种方式在结构构造函数中工作,我不知道该怎么做。
答案 0 :(得分:1)
struct FEntityID{
int A;
int B;
FEntityID(): A(0), B(0){
}
};
通过为FEntityID
创建默认构造函数,每次创建其对象时,int
值将使用0
进行初始化。
如果要控制为每个实例初始化struct对象的方式,还应该为它们定义构造函数。