cor*_*zza 6 c++ arguments class naming-conventions
可能重复:
C++中的成员与方法参数访问
我有了一些成员,如类x,y,width和height.在它的构造函数中,我不会这样做:
A::A(int x, int y, int width, int height)
{
x = x;
y = y;
width = width;
height = height;
}
Run Code Online (Sandbox Code Playgroud)
这并没有真正意义,当与G ++编译x,y,width,和height成为怪异的值(例如-1405737648).
解决这些命名冲突的最佳方法是什么?
Luc*_*ore 17
您可以使用相同名称的初始化列表:
A::A(int x, int y, int width, int height) :
x(x),
y(y),
width(width),
height(height)
{
}
Run Code Online (Sandbox Code Playgroud)
如果您不想使用相同的名称,则可以使用不同的名称.我想到了一些匈牙利符号的变化(我可能会对此感到讨厌):
//data members
int x_;
int y_;
int width_;
int height_;
//constructor
A::A(int x, int y, int width, int height) :
x_(x),
y_(y),
width_(width),
height_(height)
{
}
Run Code Online (Sandbox Code Playgroud)
但第一个建议没有错.
如果你必须在构造函数中使用赋值(而不是使用初始化列表,这是首选)的特定模式来解决这个问题是使用this指针,如下所示:
this->a = a;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3595 次 |
| 最近记录: |