如果我复制一个带有`array [3]`的`struct`怎么办?

时间:2013-08-29 17:38:53

标签: c++ arrays unions

我有这个结构,到目前为止我一直在使用没有错误:

union Vector3f
{
  struct{ float x,y,z ; } ;
  float elts[3];
} ;

有一些重载的构造函数,但是我将复制构造函数和赋值operator=保留到它们的默认实现中。

Vector3f a,b ;
b=a; //works as expected, with x,y,z copied over from a to b

我刚刚想到默认成员分配应该执行b.elts=a.elts,因为elts是指针类型,应该导致b.elts错误地指向a.elts。< / p>

但是,显式尝试b.elts=a.elts失败并出现编译错误

  

数组类型float [3]不可分配

这有什么值得担心的吗?我的代码是正确的还是我应该明确写一份副本ctor和作业operator=

0 个答案:

没有答案