Thứ nhất, tôi có các chức năng như thế này.Làm thế nào để bạn khai báo một mảng const của con trỏ hàm?
void func1();
void func2();
void func3();
Sau đó, tôi tạo typedef của tôi cho các mảng:
void (*FP)();
Nếu tôi viết một mảng bình thường của con trỏ hàm, nó phải là một cái gì đó như thế này:
FP array[3] = {&func1, &func2, &func3};
Tôi muốn tạo một mảng không đổi, sử dụng const trước "FP", nhưng tôi đã nhận được thông báo lỗi này:
error: cannot convert 'void (*)()' to 'void (* const)()' inialization
PD: Xin lỗi vì tiếng Anh không tốt của tôi.
EDIT:
x.h
typedef void (*FP)();
class x
{
private:
int number;
void func1();
void func2();
void func3();
static const FP array[3];
}
x.cpp
const FP x::array[3] = {&x::func1, &x::func2, &x::func3};
Mã của tôi là lớn và phức tạp hơn, đây là một bản tóm tắt
của nó luôn luôn tốt hơn để viết mã thực tế hơn là nói "Sau đó, tôi tạo typedef của tôi cho các mảng:" hoặc "sử dụng const trước khi 'FP'". – sand
@Facon: Bạn đang sử dụng một lớp học? Bạn có thể đăng toàn bộ mã ở đây không? – Jagannath
Tôi đã chỉnh sửa bài đăng. – Facon