结构和联盟

时间:2017-02-18 14:00:04

标签: c++ struct unions

struct X { const int n; };
union U { X x; float f; };

void tong() {
    U u = {{ 1 }};
    u.f = 5.f; 
    X *p = new (&u.x) X {2};
}

{{}}做什么? 是否需要写作 - (&u.x)

1 个答案:

答案 0 :(得分:1)

new (&u.x) X {2}是一种“放置新”语法。它不分配内存并使用现有地址&u.x

你可以改为写

u.x = {2};
X *p = &u.x;