Giả sử chúng ta muốn khai báo hàm thành viên const qua typedef
:thành viên chức năng và typedef Const, C++
typedef int FC() const;
typedef int F();
struct A
{
FC fc; // fine, we have 'int fc() const'
const F fc; // not fine, 'const' is ignored, so we have 'int fc()'
};
Kể từ const
bị bỏ qua chương trình biên dịch tốt. Tại sao const
bị bỏ qua cho chức năng? Vì chúng ta có thể tạo thành con trỏ const theo cách này, điều duy nhất tôi có thể nghĩ là 'di sản C'. Tiêu chuẩn có nói gì về nó không?
'int() const' chủ yếu là một nửa loại, vì nó chỉ có thể áp dụng cho lớp học để có các hàm thành viên. – Jarod42
Không thể là "di sản C" vì C không có chức năng thành viên. – Jarod42
Có, nhưng trong C chúng tôi vẫn có thể có: typedef int F(); const F f; mặc dù 'int f() const' có thể sai cú pháp. – igntec