C++ 11 bây giờ hỗ trợ thiết lập các giá trị của một trường thành viên lớp tại thời điểm kê khai, như thế này:C++ 11 có khởi tạo lại các trường thành viên được khởi tạo không?
class MyClass
{
private
int test = 0;
}
Nếu tôi cũng khởi tạo biến trong các nhà xây dựng như thế này:
class MyClass
{
private
int test = 0;
public:
MyClass() : test(1)
{
}
}
sẽ điều này làm cho biến có giá trị của nó được đặt hai lần, hoặc đặc tả quy định rằng trình biên dịch nên tối ưu hóa điều này để khởi tạo biến chỉ một lần? Nếu đặc tả không đưa ra bất cứ điều gì, bạn có biết hành vi của các trình biên dịch nổi tiếng (ví dụ: MSVC, GCC, v.v.) đối với điều này không?