Tôi đang cố gắng làm điều gì đó với con trỏ để hoạt động thành viên mà tôi không thể 'tìm ra cách hoạt động này.con trỏ đến hàm thành viên
Tôi có một lớp A mà trông giống như sau
class A
{
public:
float Plus (float a, float b) { return a+b; }
float Minus (float a, float b) { return a-b; }
float Multiply(float a, float b) { return a*b; }
float Divide (float a, float b) { return a/b; }
};
Tôi muốn khai báo một con trỏ đến A và sau đó vượt qua chức năng khác một con trỏ hàm để một trong những thành viên của A.
Một cái gì đó thích này:
void Will_Get_Function_Pointer(float a, float b, float (A::*pt2Func)(float, float))
{
(...)
}
đâu tôi sẽ gọi nó với một cái gì đó như thế này
A* myA = new A;
Will_Get_Function_Pointer(1.00,2.00, &myA->Minus)
tôi không thể sử dụng tĩnh/thành viên const vì Thực hiện cuối cùng của tôi A sẽ trỏ đến một Một cụ thể trong một bộ sưu tập của A đối tượng trong cái gì đó sẽ trông như thế này
vector<A> vecA;
myA = &vecA[xxx]
Việc làm này thất bại thảm hại
typedef float (A::*pA)(float x, float y);
pA p = &myA->Minus;
và trình biên dịch yêu cầu tôi sử dụng & A :: Trừ nhưng điều đó sẽ không hiệu quả đối với tôi.
Tôi thậm chí có thể thực hiện việc này không?
Cheers
@ForEverT cảm ơn! nó hoạt động rất tốt! –