在C++中,如何使用指针从类B调用类A的方法成员?顺便说一下,A类和B类是不同类型的。将变量指向不同类类型的成员函数
我读到,当指针指向成员函数时,它只能指向类中的成员函数。但是我怎样才能指出课堂以外的成员函数呢?
例如:
class A
{
public:
int add(int x)
{
return x+x;
}
};
int main()
{
typedef int (A::*pointer)();
pointer func = &A::add;
A objt;
B objt2;
obt2.*func(2);// the compiler give me an error of incompatible with object type ‘B’
return 0;
}
尝试'(2)' – 2012-04-13 21:39:03
@Chet:这并不解决调用的一个实例的'A'成员函数的事实'B'是无意义的。 – ildjarn 2012-04-13 21:39:48
无论您试图用这个概念解决什么问题,都可能通过另一种方法解决起来更容易和*更好。在C++中,方法和函数与Smalltalk和其他纯粹的OO语言不同。重新整理您的解决方案,以使用语言的实用功能,例如继承或某种可实现您的目标的设计模式。如果你分享你的实际目标,有人可能会提出一些有效的方法。 – 2012-04-13 21:42:20