0 👍
150 lượt xem
bởi (🏅0)
imageCho em hỏi là nó warning em gì vậy ạ? và cách sửa lỗi này, em kiếm trên stack overflow cũng chưa giải đáp được.

1 Câu trả lời

0 👍
bởi (🏅151)
đã được chọn bởi
 
Câu trả lời hay nhất
Trước version C++11 thì cách khởi tạo non-static data member của một class là dùng constructor của nó. Ví dụ trong case của em thì trước tiên em phải khai báo struct và constructor như sau →
struct sample {
    int number_of;
    string position;
    bool has_been_chosen;

    sample(){
        number_of = 0;
        position = "";
        has_been_chosen = false;
    }
};
Sau đó mới khai báo mảng có kiểu là sample.
Còn từ C++11 trở đi thì ngoài cách khởi tạo trong constructor thì e có thể khởi tạo ngay tại chỗ khai báo như e đang làm.
Ở trên compiler nó đang warning em là e đang khởi tạo trực tiếp giá trị cho non-static member ngay tại chỗ khai báo. Cái này chỉ được support từ C++11. Tức là nếu em build source ở version thấp hơn C++11 (C++98 chẳng hạn) sẽ bị lỗi ==> Tốt nhất là khởi tạo trong constructor, cách làm hiện tại của e không được khuyên dùng.
 
Coding Guru là nơi dành cho cộng đồng lập trình viên Việt Nam hỗ trợ nhau về tất cả các vấn đề liên quan đến công nghệ.

Chúng ta hãy cùng nhau xây dựng một cộng đồng công nghệ Việt Nam mạnh mẽ, thúc đẩy và giúp đỡ nhau cùng phát triển, thăng tiến trong sự nghiệp.

***
Nơi đam mê hội tụ
***

Một số câu hỏi gần đây có thể tương tự hoặc liên quan ↓

0 👍
1 trả lời 148 lượt xem
+1 👍
2 trả lời 277 lượt xem
hỏi bởi ẩn danh 7/12/2020
0 👍
1 trả lời 186 lượt xem
hỏi bởi namnh (🏅0) 1/12/2020
0 👍
1 trả lời 71 lượt xem
hỏi bởi LongHoang (🏅0) 10/11/2020
+1 👍
1 trả lời 561 lượt xem
...