2017-04-21 25 views
8

Tôi đã thấy khai báo biến tham chiếu là hằng số trong C++ trên Quora.Sử dụng constexpr và const trong định nghĩa tham chiếu

static constexpr const int& r = 3; 

Vì vậy, tại sao cả hai constexprconst được sử dụng trong một câu lệnh?

Mục đích của loại tuyên bố đó là gì? Các biến số

+0

Đọc hữu ích: http://stackoverflow.com/questions/14116003/difference-between-constexpr-and-const Mục đích là gì? Trình diễn, tôi nghĩ vậy. – user4581301

+3

Câu hỏi tương tự, http://stackoverflow.com/questions/28614591/how-to-initialize-a-constexpr-reference. 'constexpr' áp dụng cho tham chiếu và' const int' là điều được nhắc đến, chúng có nghĩa khác nhau –

Trả lời

5

const là các biến không thể sửa đổi sau khi khởi tạo (ví dụ: const int a = 1).

constexpr biến là constant expressions và có thể được sử dụng trong thời gian biên dịch. Việc sử dụng constexpr cho một khai báo biến bao hàm const.

Tuy nhiên, trong tuyên bố này, const áp dụng cho int, trong khi constexpr áp dụng cho const int& (tham chiếu đến const int).

+0

"có nghĩa là' const' là thừa "Khó. –

+1

Trừ khi bộ nhớ không thành công, vì C++ 14 'constexpr' không còn ngụ ý' const' nữa. –

+4

@AndyProwl Đó là chức năng của thành viên. –

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