繁体   English   中英

指针功能的深层复制

[英]Deep copy of a pointer function

我有一个类(myClass),它具有一个指针,可像这样充当私有成员:

void (gi::myClass::*ptrFunction) (int  , int  , vector<int> & , vector<int> & , vector<int> &);

当您在运行时(带有新对象)创建myClass的对象(* myClass ptrObject)时,此指针会在构造函数中初始化,并带有函数的地址。 使用上面创建的相同对象之后,我调用另一个函数。 在此函数中,我必须创建调用对象的深层副本:

gi::myClass *ptrObject2 = new myClass(....);

上面我叫一个构造函数,它执行复制操作,但不初始化* ptrObject2的成员* ptrFunction我的问题是:我如何将指针函数从* ptrObject复制到ptrObject2? (我的编译器是C ++ 11)

没有函数指针的深层副本 您没有复制任何数据,只是将引用复制到v表中。 因此:

ptrObject2->ptrFunction = ptrObject->ptrFunction

很好

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM