tôi nhận thấy C++ sẽ không biên dịch như sau:Tại sao tôi không thể có một thành viên const tĩnh không tách rời trong một lớp học?
class No_Good {
static double const d = 1.0;
};
Tuy nhiên nó sẽ vui vẻ cho phép một sự thay đổi nơi đôi được thay đổi thành một int, unsigned, hoặc bất kỳ loại không thể thiếu:
Giải pháp của tôi đã thay đổi nó để đọc:
class Now_Good {
static double d() { return 1.0; }
};
và con số trình biên dịch sẽ đủ thông minh để nội tuyến khi cần ... nhưng nó để lại cho tôi ious.
Tại sao nhà thiết kế C++ (s) cho phép tôi tĩnh const một int hoặc unsigned, nhưng không phải là gấp đôi?
Chỉnh sửa: Tôi đang sử dụng studio trực quan 7.1 (.net 2003) trên Windows XP.
Edit2:
Câu hỏi đã được trả lời, nhưng để hoàn thành, các lỗi tôi đã nhìn thấy:
error C2864: 'd' : only const static integral data members can be initialized inside a class or struct
trình biên dịch/nền tảng nào hoặc bạn thấy nó trên bội số? – warren
Bạn nhận được thông báo lỗi nào trong VS7.1? –