我有以下课程:
public class MyFragment
{
/// members + methods
void proc();
}
public class MyProc
{
/// members + methods
}
public class MyClass
{
private MyProc m_proc;
private MyFragment m_frag;
public MyClass(MyFragment fr)
{
m_proc = new MyProc();
m_frag = new MyFrag();
m_frag.proc();
}
}
对于类void proc()
的方法MyFragment
,我不能更改签名,也不能返回类型。但是可以改变实施方式
我的目标是使用m_proc
内生成的一些数据更新MyClass
MyFragment::proc()
我想过:
在MyFragment
类中生成MyProc
内的对象,在MyFragment::proc()
中填充它
然后将其复制到MyClass.m_proc
。
另一方面,我不喜欢复制的想法......如何更有效地完成复制
答案 0 :(得分:0)
您可以编写另一个方法,接受MyProc
作为参数,并从proc
调用此方法:
public class MyFragment
{
/// members + methods
public void proc()
{
// just pass dummy argument
ProcEx(new MyProc());
}
public void ProcEx(MyProc myProc)
{
// fill myProc
}
}
public class MyClass
{
private MyProc m_proc;
private MyFragment m_frag;
public MyClass(MyFragment fr)
{
m_proc = new MyProc();
m_frag = new MyFrag();
m_frag.ProcEx(m_proc);
}
}
P.S。 CPP风格的会员名称让我发疯。