我有一个非常奇怪的要求。我有两个我的类的成员函数,每个函数接收不同对象的引用(但这两个对象通过继承相关)。现在我希望能够在我的类的其他一些成员函数中使用这两种不同类型的引用(取决于用例,我将只得到一个,但从不在一起)。如何实现这一目标。我知道这听起来有些奇怪,但我的类的实例将被用作其他进程的插件,我“必须”从流程框架拥有的纯虚拟类派生我的类并覆盖我刚才提到的那两个成员函数。有什么办法吗?
为了说明这种情况:
func1(const Data& params, MyParent& parent);
func2(const Data& params, MyChild& child);
以上是我必须覆盖的两个成员函数,并且没有我可以更改调用的模式,我必须使用这些非const引用
有没有办法让myfunc()
或MyParent& parent
调用MyChild& child
,但绝不会同时使用?我不想直接从myfunc()
和func1()
致电func2()
,因为我希望在两者之间完成一些处理,然后我想排队完成所有我要做的事情所有处理完成后的任务,最后使用myfunc()
或MyParent& parent
调用MyChild& child
,但不要同时调用两者。
提前感谢您的帮助。
答案 0 :(得分:0)
在C ++中有函数或方法overloading。你应该简单地用两种类型声明你的方法,编译器将选择应该执行的方法:
myfunc(MyParent& parent);
myfunc(MyChild& child);