鉴于课程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)
(并且使其更短,更简洁,这就是我首先重载运算符的原因)。
有没有办法在不必使用*
运算符来获取指针的基值的情况下执行此操作?