我有一个类(myClass),它有一个指向私有成员的指针,如下所示:
void (gi::myClass::*ptrFunction) (int , int , vector<int> & , vector<int> & , vector<int> &);
当您在运行时(使用new)创建myClass的对象(a * myClass ptrObject)时,此指针在构造函数中使用函数的地址进行初始化。 在使用上面创建的相同对象后,我调用另一个函数。 在这个函数中,我必须创建一个调用对象的深层副本:
gi::myClass *ptrObject2 = new myClass(....);
上面我调用了一个构造函数来执行复制,但它没有初始化* ptrObject2的成员* ptrFunction 我的问题是: 如何从* ptrObject到ptrObject2执行指针函数的深层复制? (我的编译器是C ++ 11)
答案 0 :(得分:3)
函数指针没有深层复制。您没有复制任何数据,只是对v表的引用。就这样:
ptrObject2->ptrFunction = ptrObject->ptrFunction
很好。