0

在使用结构项目时:

struct item
{
    item();
    ~item();
    char * name;
    char * effect1;
    char * effect2;
    char * effect3;
    char * effect4;
    int count;
};

使用构造函数:

item::item()
{
    name = NULL;
    effect1 = NULL;
    effect2 = NULL;
    effect3 = NULL;
    effect4 = NULL;
    count = 0;
}

将鼠标悬停在名称上显示:

char* name() const

将鼠标悬停在任何效果上时显示:

char* effectx

我想知道为什么会发生这种情况,因为我认为这种差异导致我在程序的其他领域出现问题。谢谢你。

4

1 回答 1

1

我不认为您提供的声明与 IDE 看到的代码完全相同。解决问题的一种好方法是将代码复制到单独的工作文件中(在单独的项目中),并将所有代码(声明和显示问题的示例代码)移动到同一个文件中。然后删除代码中不相关的部分,以便您慢慢转向仍然显示您的问题的最小、最精简的示例。

然后将该代码发布为您的问题的更新。

同时,您没有完全正确地定义您的构造函数。嗯,这是正确的,但不是最好的风格。不要在构造函数的主体中初始化成员,像这样初始化它们:

item::item()  : 
 name(NULL), effect1(NULL), effect2(NULL), effect3(NULL), effect4(NULL), count(0)
{
  /* nothing in the body. */
}
于 2012-05-21T20:37:40.527 回答