0

我的结构如下:

struct Candidate { 
    float pertotal, voteper; 
    string name; 
    int voten, votem, votese, votesw, total;
};

我需要为名称分配一个空值。我努力了:

struct Candidate { 
    float pertotal, voteper; 
    string name = 0; 
    int voten, votem, votese, votesw, total;
};

struct Candidate { 
    float pertotal, voteper; 
    string name = ""; 
    int voten, votem, votese, votesw, total;
};

但它似乎不喜欢它.. 想法?

4

2 回答 2

4

Candidate是一个类型,而不是一个实例

但是,您可以这样做:

Candidate cand;

cand.name = "";

或者,您可以编写一个构造函数:

struct Candidate {
    Candidate() : name("") {}

    ...
};

但是,在这种情况下,您不需要执行其中任何一项,因为默认构造函数的std::string结果是一个空字符串。

于 2012-05-01T21:58:52.487 回答
2

std::string默认构造为空,因此您无需执行任何操作。

但是,如果您需要在其中放入其他内容(创建该类的对象时),则需要一个构造函数。

如果您已经创建了一个实例:

Candidate c;

并且您想将字符串设置回空字符串,只需分配给它:

c.name = "";
于 2012-05-01T21:58:39.077 回答