Tôi không biết phải tìm kiếm gì để tìm giải thích cho điều này, vì vậy tôi hỏi.
tôi có mã này mà báo cáo lỗi:`không nêu tên lỗi loại 'trong C++
struct Settings{
int width;
int height;
} settings;
settings.width = 800; // 'settings' does not name a type error
settings.height = 600; // 'settings' does not name a type error
int main(){
cout << settings.width << " " << settings.height << endl;
nhưng nếu tôi đặt nhiệm vụ giá trị trong chính, nó hoạt động:
struct Settings{
int width;
int height;
} settings;
main() {
settings.width = 800; // no error
settings.height = 600; // no error
Bạn có thể giải thích cho tôi tại sao?
EDIT:
Về câu trả lời Ralph Tandetzky của, đây là mã struct đầy đủ của tôi. Bạn có thể chỉ cho tôi cách gán các giá trị như bạn đã làm với cấu trúc đoạn mã của tôi không?
struct Settings{
struct Dimensions{
int width;
int height;
} screen;
struct Build_menu:Dimensions{
int border_width;
} build_menu;
} settings;
wow một vấn đề tinh tế như vậy. chưa bao giờ để ý. điều duy nhất còn thiếu ở đây là tham chiếu std thông thường. là bạn andy hoặc một số người khác đã hack vào tài khoản của Andy? :-) –
Oh damn, awesome. Tôi đang sử dụng khởi tạo quá, vì vậy tôi đã không hiểu tại sao điều này đã không làm việc kể từ khi tôi đã có nhiều biến hơn trước khi cấu trúc này. Vì vậy, hãy rõ ràng. 'int i = 5;' sẽ hoạt động, nhưng 'int i;' theo sau bởi 'i = 5;' sẽ không hoạt động? – Qwerty
@Qwerty: Chính xác –