C++ C+中的错误+;使用Getter函数
当我试图显示一些信息时,我遇到了一个奇怪的错误。这是我课程代码的一部分:C++ C+中的错误+;使用Getter函数,c++,getter,C++,Getter,当我试图显示一些信息时,我遇到了一个奇怪的错误。这是我课程代码的一部分: class Vertex { public: Vertex(int name) { name = name; pred = NULL; color = 'w'; desc = 1000000; } int getName() {return name;} char getColor() {return color;}
class Vertex
{
public:
Vertex(int name)
{
name = name;
pred = NULL;
color = 'w';
desc = 1000000;
}
int getName() {return name;}
char getColor() {return color;}
Vertex* getPred() {return pred;}
int getDesc() {return desc;}
void setColor(char c) {color = c;}
void setPred(Vertex *p) {pred = p;}
void setDesc(int d) {desc = d;}
private:
int name;
char color;
Vertex* pred;
int desc;
};
我相信这没关系。。。但当我在我的主要功能中执行此操作时(我相信这也没问题……):
有人能帮我,告诉我为什么只有getName()才会发生这种情况吗
提前谢谢 更改构造函数
Vertex(int name)
{
name = name;
pred = NULL;
color = 'w';
desc = 1000000;
}
下面的方法
Vertex(int name)
{
this->name = name;
pred = NULL;
color = 'w';
desc = 1000000;
}
或
或
或
否则,将隐藏类的数据成员name
的局部变量name
分配给自身
另外,最好用限定符const声明所有getter。比如说
int getName() const {return name;}
char getColor() const {return color;}
Vertex* getPred() const {return pred;}
int getDesc() const {return desc;}
更改构造函数
Vertex(int name)
{
name = name;
pred = NULL;
color = 'w';
desc = 1000000;
}
下面的方法
Vertex(int name)
{
this->name = name;
pred = NULL;
color = 'w';
desc = 1000000;
}
或
或
或
否则,将隐藏类的数据成员name
的局部变量name
分配给自身
另外,最好用限定符const声明所有getter。比如说
int getName() const {return name;}
char getColor() const {return color;}
Vertex* getPred() const {return pred;}
int getDesc() const {return desc;}
构造函数中的变量
name
会将成员name
隐藏起来。因此,您可以将局部变量分配给自身
要解决此问题,请编写this->name=name代码>或更改参数的名称
您也可以使用,而IMO是最好的方法。因此,请注意这样一个事实,即成员将始终按照其在类中声明的顺序进行初始化,而不考虑列表中初始值设定项的顺序。构造函数中的变量name
将隐藏成员name
。因此,您可以将局部变量分配给自身
要解决此问题,请编写this->name=name代码>或更改参数的名称
您也可以使用,而IMO是最好的方法。因此,请注意这样一个事实,即成员将始终按照它们在类中声明的顺序进行初始化,而不考虑列表中初始值设定项的顺序。您要求整数,但得到了整数。你期望发生什么?你要求整数,你得到了整数。你以为会发生什么?好的!谢谢你的帮助。我将“选择”最后一个方法,并将限定符const添加到getter中。好的!谢谢你的帮助。我将“选择”最后一个方法,并将限定符const添加到getter中。
Vertex(int name) : name( name ), pred( NULL ), color( 'w' ), desc( 1000000 )
{
}
int getName() const {return name;}
char getColor() const {return color;}
Vertex* getPred() const {return pred;}
int getDesc() const {return desc;}