如何设置对象数据成员与这个c++与这个
how to set object data members with this c++ with this
所以这个问题可能是重复的,但当我搜索时,我什么也找不到。所以在C++中,如果我有
class Foo{
public:
int x;
int y;
Foo(int x, int y);
};
和
Foo(int xIn, int yIn){
x = xIn;
y = yIn;
}
难道没有办法用this
做作业吗?所以您不必更改传入变量的名称?
是的,有:
Foo(int x, int y) {
this->x = x;
this->y = y;
}
这里x
和y
隐藏成员变量,但您可以使用this->x
和this->y
来访问它们。
惯用方法是使用初始化列表:
Foo(int x, int y) : x(x), y(y) {}
当然,如果出于任何原因想要访问构造函数主体中隐藏的数据成员,可以使用this
指针:
Foo(int x, int y) {
this->x = x;
....
在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;
}
相关文章:
- 用于访问容器<T>数据成员的正确 API
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 数据成员SFINAE的C++17测试:gcc vs clang
- 派生类是否可以在抽象工厂设计模式中具有数据成员
- 如何在c++中定义以struct为数据成员的类中的构造函数
- 静态数据成员模板专用化的实例化点在哪里
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 使用指针访问数组中的对象数据成员
- 友元函数无法访问私有数据成员 (c++)
- 我可以在 C++ 中将数据成员/变量从其定义之外添加到结构中吗?
- 为什么将一个结构的引用设置为等于另一个结构只会更改一个数据成员?
- 将私有数据成员添加到野牛生成的类中
- 输入数据成员未按要求工作
- 二维矢量数据成员
- 在类 A 中创建类型为 B 类的向量 - 访问数据 [C++] [成员在两个类中都是私有的]
- 调用在 HXX 文件中声明的静态数据成员
- 是否可以根据其数据成员的类型确定类型的大小
- 访问数据成员(本身是对象)的数据成员,就好像它们是类成员一样
- 使公共数据成员在C++中无法访问
- 从 XML 中读取未指定结构的每个数据成员