メンバーとして配列を持つクラスがある場合:
class A
{
Object array[SIZE];
};
そして、そのインスタンスをコピーします:
A a;
A b = a;
A c;
c = a;
array
バイトごとに memcpyされるかObject::operator=
、要素ごとにコピーされますか?
メンバーとして配列を持つクラスがある場合:
class A
{
Object array[SIZE];
};
そして、そのインスタンスをコピーします:
A a;
A b = a;
A c;
c = a;
array
バイトごとに memcpyされるかObject::operator=
、要素ごとにコピーされますか?
C++ の配列は、ユーザー定義の型を含むすべてのファースト クラス オブジェクトに対して適切に動作します (それらが POD/非自明に構築可能であるかどうかに関係なく)。
#include <cstdio>
struct Object
{
Object() { puts("Object"); }
Object(Object const&) { puts("copy"); }
~Object() { puts("~Object"); }
};
struct A
{
Object array[4];
};
int main()
{
A a;
A b = a;
}
出力 ( http://liveworkspace.org/code/40380f1617699ae6967f0107bf080026も参照):
Object
Object
Object
Object
copy
copy
copy
copy
~Object
~Object
~Object
~Object
~Object
~Object
~Object
~Object