template
TAO_Var_Base_T::TAO_Var_Base_T (const TAO_Var_Base_T & p)
: ptr_ (p.ptr_ ? new T (*p.ptr_) : 0)
{
}
该构造函数会对传入的_var引用进行深拷贝。
· 对远程方法调用内存管理问题的解释
CORBA内存分配/释放的原则很简单:各自负责自己分配空间的释放,C/S两端内存的分配与释放(以及更新)不会自动通知另一方。
对于Client代码而言,由Client代码负责释放的空间还包括ORB在unmarshalling期间创建的Server的指针的镜像,即Server端指针的本地拷贝,这些空间可能是out/inout参数或者作为接口方法的返回值通过方法调用获得的。
这在理解上应该没有什么问题。但是,其中对于Server方的内存管理,我们没有考虑。以如下代码为例:
DemoStruct* DemoIntf::foo() {
DemoStruct_var var = new DemoStruct;
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/










