将成员访问运算符与重载调用运算符

时间:2015-04-29 18:19:35

标签: c++ pointers operator-overloading

鉴于课程Foo的重载Boo* operator()(unsigned int),如何访问重载运算符?

我最初尝试过

std::unique_ptr<Foo> foo_ptr(new Foo);
Boo* boo_ptr = foo_ptr(1);

但这不起作用,所以我尝试了:

std::unique_ptr<Foo> foo_ptr(new Foo);
Boo* boo_ptr = foo_ptr->(1);

但这也不起作用(我并没有真正期待它)。相反,我必须做

std::unique_ptr<Foo> foo_ptr(new Foo);
Boo* boo_ptr = (*foo_ptr)(1);

这比在Foo中声明方法更加冗长,例如ByIndex(unsigned int)(并且使其更短,更简洁,这就是我首先重载运算符的原因)。

有没有办法在不必使用*运算符来获取指针的基值的情况下执行此操作?

0 个答案:

没有答案