[英]What if a constructor parameter has the same name as a member variable in C++?
[英]What happens when constructor's parameter has same name as member variable?
我正在尝试这样的代码:-
class Something
{
private:
int data;
public:
Something(int data)
{
data = data;
}
int getdata()
{
return data;
}
};
int main()
{
Something xyz(5);
cout<<xyz.getdata()<<endl;
return 0;
}
该输出为“ 0”。 我陷入困境,为什么这会成为0。请帮助。 TIA。
您可以将定义更改为
Something(int data):data(data)
{
}
它也会起作用。 该参数data
隐藏字段data
在函数的范围。 this->data
明确指定范围为该类的范围。 除了说构造函数的初始化列表中的元素必须是类实例的字段之外,我不能告诉您上述声明为什么起作用。 因此,这可能意味着范围。 而使用它们初始化的值来自功能范围。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.