我有这样的功能:
void myFunction(MyObject& obj)
{
//lots of code to operate on obj
}
我的问题是,有时obj将是指向MyObject
类型实例的指针void myFunction(MyObject* obj)
{
//...
}
我的问题是如何实现两种功能定义,而不必重复任何代码?
答案 0 :(得分:5)
您只需从指针功能转发实例即可。
void myFunction(MyObject* obj)
{
if (obj != nullptr) // do not want to dereference a null pointer
myFunction(*obj);
}
将调用myFunction
的参考版本,允许您只维护一个函数。
这假设您只需要处理对象的值,并且使用指针或引用只是为了保存必须复制对象。