如何在类的其他成员函数中重用传递的引用?

How to reuse a passed reference in some other member-function of a class?

本文关键字:引用 函数 其他 成员      更新时间:2023-10-16

我有一个很奇怪的要求。我的类有两个成员函数,每个函数接收不同对象的引用(但这两个对象通过继承相关)。现在我希望能够在类的其他成员函数中使用这两种不同类型的引用(取决于用例,我只会得到一个,但永远不会同时获得两个)。如何实现这一点。我知道这听起来有点奇怪,但是我的类的实例将用作其他进程的插件,我"必须"从流程框架拥有的纯虚拟类派生我的类并覆盖我刚刚提到的这两个成员函数。有什么办法吗?

为了说明此方案,请执行以下操作:

func1(const Data& params, MyParent& parent);
func2(const Data& params, MyChild& child);

以上是我必须覆盖的两个成员函数,没有我可以更改调用模式,我必须接受这些非常量引用

有没有办法让我们说用MyParent& parentMyChild& child来称呼myfunc(),但不能同时使用两者?我不想直接从func1()func2()调用myfunc(),因为我希望在两者之间完成一些处理,然后我想在所有处理之后将所有待完成的任务排队,最后使用MyParent& parentMyChild& child调用myfunc(),但绝不能两者兼而有之。

提前感谢任何帮助。

C++中存在函数或方法重载。您应该简单地使用两种类型声明您的方法,编译器将选择应该执行的方法:

myfunc(MyParent& parent);
myfunc(MyChild& child);