C++ 使一个成员函数等于另一个成员函数

C++ 使一个成员函数等于另一个成员函数,c++,function,class,member,C++,Function,Class,Member,假设我有一个类test_1,在这个类中我有一个公共函数foo_1 稍后,我主要创建test_1类的两个对象(A,B)。对于对象A,我需要foo_1来做这个:A+b,对于对象b,我需要foo_1来做:A-b。 也许以后我会创建对象C,我需要他的foo_1来执行:2.0*a 但这还不是全部 我可以创建函数boo_1、boo_2、boo_3来执行我需要的任务,并将foo_1作为指针,然后执行以下操作: A.foo_1 = &boo_1 ; B.foo_1 = &boo_2 ; C.fo

假设我有一个类test_1,在这个类中我有一个公共函数foo_1

稍后,我主要创建test_1类的两个对象(A,B)。对于对象A,我需要foo_1来做这个:A+b,对于对象b,我需要foo_1来做:A-b。 也许以后我会创建对象C,我需要他的foo_1来执行:2.0*a

但这还不是全部 我可以创建函数boo_1、boo_2、boo_3来执行我需要的任务,并将foo_1作为指针,然后执行以下操作:

A.foo_1 = &boo_1 ;
B.foo_1 = &boo_2 ;
C.foo_1 = &boo_3 ;
但是。我有另一个类test_2,该类的对象需要使用来自类test_1的特定对象的函数foo_1

根据对象的不同,我可以为foo_1函数创建不同的实体吗? 然后将类test_1的objct.foo_1分配给类test_2的objct.foo_2? 或者我需要创建boo#函数,然后像这样执行smth:

class test_1{
public:
void (*foo_1)(int);
};

class test_2{
public:
void (*foo_2)(int);
};

void boo_1(int);
void boo_2(int);
void boo_3(int);

int main{

test_1 A,B,C ;
A.foo_1 = &boo_1 ;
B.foo_1 = &boo_2 ;
C.foo_1 = &boo_3 ;

test_2 AA, BB, CC;
AA.foo_2 = &boo_1 ;
BB.foo_2 = &boo_2 ;
CC.foo_2 = &boo_3 ;

return 0;
}

“我有几个问题”,这是一个很差的开始问堆栈溢出。你真正需要的是多态性,搜索C++纯抽象类和虚拟基类。@π-yFuang-Top-αε:我同意,但据我理解,它实际上只是一个问题。@阿斯文穆祖什:你真的意味着超载吗?还是重写?
std::function
可能是函数指针的替代方法。