Một POD struct
có thể zero-khởi tạo trong C++ 11 như sau:Zero-reinitializing một struct trong C++
SomeStruct s{};
Tuy nhiên, tôi phải làm gì nếu tôi đã có một thể hiện của các struct và tôi muốn khởi tạo lại nó về số không? Công việc sau dường như hoạt động:
s = {};
Ai đó có thể chỉ ra tiêu chuẩn có liên quan? Tôi cho rằng đây là những gì đang xảy ra:
- Ví dụ mới được khởi tạo bằng không được tạo.
- Ví dụ mới được gán cho cá thể hiện có, gọi toán tử gán ngầm.
Tôi không biết về tiêu chuẩn, nhưng - một số điều này có thể được tối ưu hóa. Trong thực tế, nếu bạn không sử dụng của 0, có thể _all_ của điều này được tối ưu hóa đi. – einpoklum
Có một quy tắc rõ ràng trong đó cho phép niềng răng ở bên phải của một bài tập. Giả định của bạn khá chính xác. – chris
Không có điều gì như "khởi tạo lại". Bạn khởi tạo một cái gì đó một lần. Chỉ một lần. Những gì bạn đang làm là phân công và rất khác nhau theo những cách tinh tế và không quá tinh tế. –