Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C+中的错误+;使用Getter函数_C++_Getter - Fatal编程技术网

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;}