【发布时间】:2012-05-21 20:26:24
【问题描述】:
在使用结构项时:
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
我想知道为什么会发生这种情况,因为我认为这种差异导致我在程序的其他领域出现问题。谢谢。
【问题讨论】:
-
你说你“hover over name”。当您将鼠标悬停在名称上时,您使用的是什么程序?代码编辑器?一个IDE?哪一个?
-
听起来就像系统中的一个怪癖。你有没有叫
name()的函数? -
const char*如果所有名称都直接作为字符串文字 ("somecaption") 给出,则有意义,否则您应该使用惯用的 C++ 替代方案,它既不是char*也不是const char*,而是 @ 987654331@. -
旁白:“item 除了 item() 和 ~item 之外没有其他成员函数。”。你违反了Rule of Three。
-
听起来你的 IDE 有问题。它可能将您的成员
name与另一个类的成员函数混为一谈,该类的成员函数声明为char* name() const。
标签: c++ pointers char constants