指针函数

时间:2016-02-17 00:45:53

标签: c++ c++11

我有一个类(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)

1 个答案:

答案 0 :(得分:3)

函数指针没有深层复制。您没有复制任何数据,只是对v表的引用。就这样:

ptrObject2->ptrFunction = ptrObject->ptrFunction

很好。