gpt4 book ai didi

c++ - 当构造函数的参数与成员变量同名时会发生什么?

转载 作者:行者123 更新时间:2023-11-30 05:32:55 33 4
gpt4 key购买 nike

我正在尝试这样的代码:-

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 在函数范围内隐藏字段 datathis->data 明确指定类的范围。除了说构造函数的初始化列表中的元素必须是类实例的字段之外,我不能告诉你为什么上面的声明有效。所以这可能意味着范围。而初始化它们的值来自函数作用域。

关于c++ - 当构造函数的参数与成员变量同名时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34959703/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com