如果参数与数据成员的参数同名,该怎么办?

What if an argument has the same name as that of a data member?

本文关键字:参数 怎么办 数据成员 如果      更新时间:2023-10-16
#include <iostream>
struct A
{
A(int n) { std::cout << n; }
int n{2};
};
int main()
{
A a{1};
}

输出是1而不是2

C++ 标准是否定义了如果参数名称与数据成员的参数名称相同,则首选参数名称?

参数位于比成员变量"更近"的范围内,因此参数隐藏成员变量。

显而易见的解决方案是重命名参数(或成员变量(,因此它们不再相同。

还可以使用this->n显式使用成员变量。