如果参数与数据成员的参数同名,该怎么办?
What if an argument has the same name as that of a data member?
#include <iostream>
struct A
{
A(int n) { std::cout << n; }
int n{2};
};
int main()
{
A a{1};
}
输出是1
而不是2
。
C++ 标准是否定义了如果参数名称与数据成员的参数名称相同,则首选参数名称?
参数位于比成员变量"更近"的范围内,因此参数隐藏成员变量。
显而易见的解决方案是重命名参数(或成员变量(,因此它们不再相同。
还可以使用this->n
显式使用成员变量。
相关文章:
- 如何反转整数参数包
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用默认参数等选择模板专业化
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 函数调用中参数的顺序重要吗
- 部分定义/别名模板模板参数
- 如果参数与数据成员的参数同名,该怎么办?
- 比率<,> 是恒定的,但如果我想接受不同的比率作为参数怎么办?
- C++14 及更高版本是否允许 Lambda 函数的默认参数?如果是这样,怎么办?
- 如何将派生类作为函数参数传递:如果派生类成员不在父类中怎么办
- 如果condition_variable::wait_for-delay参数在等待过程中发生更改,该怎么办
- 错误:在没有参数列表的情况下无效使用模板名称“ExTree” ||如果解决这个问题怎么办?(初学者)
- 当库函数参数不常量时该怎么办
- 使用类模板需要模板参数列表,怎么办
- c++ Koenig(参数依赖)查找:如果不同名称空间中的两个名称空间函数具有相同的参数类型该怎么办?
- 当我不需要使用函数的所有参数时,我该怎么办?
- make_heap() 函数参数 - 如果我不想包含某些元素怎么办?