🎄T
struct A {
A() {}
~A() {}
A(const A&) {}
A(A&&) {}
A& operator=(const A&) { return *this; }
A& operator=(A&&) {
puts("yes");
return *this;
}
};
A a;
a = A();
output:
yes
Size: a a a
🎄T
struct A {
A() {}
~A() {}
A(const A&) {}
A(A&&) {}
A& operator=(const A&) { return *this; }
A& operator=(A&&) {
puts("yes");
return *this;
}
};
A a;
a = A();
yes
TS
UT
Array<int> arr;
arr = Array<int>()
UT
🎄T
auto arr = Array<int>();
а не A a;
a = A();
TS
auto arr = Array<int>();
а не A a;
a = A();
🎄T
UT
TS
🎄T
TS
🎄T
Так я вот не очень понимаю, что выполняется во фрагменте auto arr = Array<int>(); -- конструктор копирования или оператор присваивания ?
TS
Так я вот не очень понимаю, что выполняется во фрагменте auto arr = Array<int>(); -- конструктор копирования или оператор присваивания ?
UT
auto arr = Array<int>(); arr = Array<int>(17);
UT
🎄T
UT
auto arr = Array<int>();
же простой конструктор вызовется, как и Array<int> arr(17)
UT
AM