这实际上是一个下棋程序,但代码太长,无法在此处发布,因此我将使用一个更简单的无关示例:
假设我有一个这样的对象:
class A{
int x1;
int x2;
public:
int Average(){ return (x1+x2)/2; }
};
我想要一个名为 AveragesList 的向量,它存储每个对象的所有 x1 和 x2 值的所有平均值(或指向它们的指针)。所以我试着这样做:
vector<int>* AveragesList;
class A{
int x1;
int x2;
public:
int Average(){ return (x1+x2)/2; }
A(){ AveragesList.push_back(this->Average); } //trying to add pointer to member function Average() to AveragesList
};
但是当我尝试这个时,我收到一条消息说“指向绑定函数的指针只能用于调用函数”。有解决办法吗?我不想简单地将 x1 和 x2 的平均值放在 AveragesList 中,因为如果 x1 或 x2 发生变化,AveragesList 中的值不会。另外,我的书说不要在 C++ 类中使用公共变量,所以我不确定是否应该使用一个。