如何用这个C++来设置对象数据成员
所以这个问题可能是重复的,但当我搜索时,我什么也没找到。所以在C++中如果我有< /P>如何用这个C++来设置对象数据成员,c++,C++,所以这个问题可能是重复的,但当我搜索时,我什么也没找到。所以在C++中如果我有< /P> class Foo{ public: int x; int y; Foo(int x, int y); }; 及 有没有办法用这个做作业?因此,您不必更改传入变量的名称?是的,有: Foo(int x, int y) { this->x = x; this->y = y; } 此处x和y隐藏了成员变量,但您可以使用此->
class Foo{
public:
int x;
int y;
Foo(int x, int y);
};
及
有没有办法用这个做作业?因此,您不必更改传入变量的名称?是的,有:
Foo(int x, int y) {
this->x = x;
this->y = y;
}
此处x和y隐藏了成员变量,但您可以使用此->x和此->y访问它们。是的,有:
Foo(int x, int y) {
this->x = x;
this->y = y;
}
这里x和y隐藏了成员变量,但是您可以使用这个->x和这个->y来访问它们。惯用的方法是使用初始化列表:
Foo(int x, int y) : x(x), y(y) {}
当然,如果出于任何原因希望访问构造函数主体中的隐藏数据成员,可以使用this指针:
惯用的方法是使用初始化列表:
Foo(int x, int y) : x(x), y(y) {}
当然,如果出于任何原因希望访问构造函数主体中的隐藏数据成员,可以使用this指针:
在C++11中,实现这一点的首选方法是
class Foo{
int x;
int y;
public:
Foo(int x, int y): x{x}, y{y}{}
};
还是传统的方式,
class Foo{
int x;
int y;
public:
Foo(int x, int y): x(x), y(y){}
};
在C++11中,实现这一点的首选方法是
class Foo{
int x;
int y;
public:
Foo(int x, int y): x{x}, y{y}{}
};
还是传统的方式,
class Foo{
int x;
int y;
public:
Foo(int x, int y): x(x), y(y){}
};
如果您试图遵守范围规则并保持清晰,则在分配变量时始终可以使用类范围运算符
class Foo{
public:
int x;
int y;
Foo(int x, int y);
};
Foo(int x, int y) {
Foo::x = x;
Foo::y = y;
}
如果您试图遵守范围规则并保持清晰,则在分配变量时始终可以使用类范围运算符
class Foo{
public:
int x;
int y;
Foo(int x, int y);
};
Foo(int x, int y) {
Foo::x = x;
Foo::y = y;
}
使用{x}和x有什么区别?空的{}在结尾表示什么?结尾{}是函数体空的。{}和for initialization之间的区别可以在另外一个问题中找到,我使用的是一个单独的头文件,它包含了我所有的函数原型以及.cpp文件。从你们的例子来看,我会做Fooint x,int y。。。在标题中,是否正确?然后我需要在.cpp文件中执行任何操作吗?您可以在头文件或cpp文件中实现构造函数。两者都很好。但是对于一个非常小的构造函数,你可以把它放在头中。使用{x}和x有什么区别?空的{}在结尾表示什么?结尾{}是函数体空的。{}和for initialization之间的区别可以在另外一个问题中找到,我使用的是一个单独的头文件,它包含了我所有的函数原型以及.cpp文件。从你们的例子来看,我会做Fooint x,int y。。。在标题中,是否正确?然后我需要在.cpp文件中执行任何操作吗?您可以在头文件或cpp文件中实现构造函数。两者都很好。但是对于一个非常小的构造函数,您可以将它放在头中。