2012-11-30 42 views
7

thể trùng lặp:
initialize a const array in a class initializer in C++const mảng thành viên lớp khởi

Đó là một câu hỏi newbie. Làm thế nào để init thành viên lớp số nguyên không đổi? Tôi nghĩ rằng trong cùng một trường hợp mảng cổ điển không phải là lựa chọn tốt nhất, tôi nên sử dụng những gì thay vì nó?

class GameInstance{ 
    enum Signs{ 
     NUM_SIGNS = 3; 
    }; 
    const int gameRulesTable[NUM_SIGNS][NUM_SIGNS]; // how to init it? 
public: 
    explicit GameInstance():gameRulesTable(){}; 
}; 
+0

Cảm ơn nhận xét của bạn, tôi đã xem câu hỏi này, nhưng câu hỏi đó đã được trả lời vào năm 2008 và có một số thảo luận về các tính năng mới có thể được chấp nhận vào năm 2011. – vard

+3

Có câu trả lời cho C++ 11 trong câu hỏi đó . –

+0

Xin lỗi, tôi không thể tìm thấy (( – vard

Trả lời

5

Biến nó thành tĩnh?

class GameInstance{ 
    enum Signs{ 
     NUM_SIGNS = 3}; 
    static const int gameRulesTable[2][2]; 
public: 
    explicit GameInstance(){}; 
}; 

...in your cpp file you would add: 
const int GameInstance::gameRulesTable[2][2] = {{1,2},{3,4}}; 
+0

Thật không may trình biên dịch của tôi không cho phép điều này.Ông nói rằng có nhiều khai báo mảng. – vard

+2

@vard 'const int GameInstance :: gameRulesTable [2 ] [2] = {{1,2}, {3,4}}; '- tệp này phải nằm trong tệp .cpp. – Stals

Các vấn đề liên quan