gpt4 book ai didi

c++将 union 转换为其成员类型之一

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:15 24 4
gpt4 key购买 nike

以下内容对我来说似乎完全合乎逻辑,但不是有效的 c++。 union 不能隐式转换为其成员类型之一。有谁知道不这样做的充分理由吗?

union u {
int i;
char c;
}
function f(int i) {
}
int main() {
u v;
v.i = 6;
f(v);
}

谁能提出一个干净的替代方案(我能想到的最干净的是 f(v.i);,我承认它非常干净,但上面的看起来更干净)

最佳答案

虽然同意 Crazy Eddie 的观点,它在我看来并没有那么好,但实际上您可以通过定义它来获得隐式转换:

union u {
int i;
char c;
operator int () const { return i; }
operator char () const { return c; }
};

关于c++将 union 转换为其成员类型之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5060177/

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