C ++ char * const vs char *,为什么有时候有一个是另一个

时间:2012-05-21 20:26:24

标签: c++ pointers char const

使用结构项:

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

我想知道为什么会发生这种情况,因为我认为差异导致我在我的计划的其他方面出现问题。谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

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

item::item()  : 
 name(NULL), effect1(NULL), effect2(NULL), effect3(NULL), effect4(NULL), count(0)
{
  /* nothing in the body. */
}
相关问题