C++ 中的初始化列表名称冲突
initialization list name conflict in c++
我为类内的联合和此类构造函数的参数使用相同的限定符,如下所示:
class A
{
union
{
C y;
D z;
}
x;
public:
A(B x);
}
我想使用 y 的构造函数 C(B q);
我尝试了这个:
A(B x)
: x.y(x)
{
}
但在这种情况下,编译器(或者至少是IDE,在本例中为VS15)似乎无法智能地处理名称冲突,就像情况更简单(即x(x)之类的东西)一样。
我不得不求助于:
A(B x)
{
this->x.y = x;
}
尝试在初始值设定项列表中使用此指针时,出现错误"预期标识符"。
有没有办法在初始化列表中实现这一行的效果?
你需要给你的联合一个构造函数,因此也需要一个名称:
class A
{
union X
{
C y;
D z;
X(B b) : y(b) {}
// other operations
};
X x;
public:
A(B b) : x(b) {}
};
相关文章:
- Pybind11:将元组列表从Python传递到C++
- 从链接列表c++中删除一个项目
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- C++如何通过用户输入删除列表元素
- 读取文件的最后一行并输入到链接列表时出错
- 写入位置0x0000000C时发生访问冲突
- 复制列表初始化的隐式转换的等级是多少
- 在 DLL 中嵌入 Python:Py_DECREF列表对象时访问冲突读取位置
- C++ 中的初始化列表名称冲突
- 创建链接列表时发生访问冲突错误
- 检查对象之间的冲突时,列表迭代器不可递增
- 使用指向对象实例的指针列表的访问冲突
- 在SFML 2.0中使用迭代器处理列表之间的冲突
- 两个精灵列表的冲突-SFML2.0
- 初始值设定项列表中的QString导致访问冲突.这里出了什么问题
- unique_ptr列表中的访问冲突
- 创建指向指针列表的指针时发生访问冲突错误
- 在初始化列表中创建单例对象会导致访问冲突(仅释放模式)
- 双链接列表中存在访问冲突
- 类中成员初始值设定项和初始化列表之间的冲突解决方案