调用方如何知道应调用哪个同名成员函数

时间:2020-08-24 19:58:12

标签: c++ reference constants

我今天看到以下代码。

我知道返回引用和返回const引用之间的区别。

但是我不知道何时会调用 T&运算符() *,何时调用const T&运算符() const *将被调用。

它们具有相同的名称。

VlcLibDirectoryNeeded

1 个答案:

答案 0 :(得分:0)

但是我不知道何时会调用T&operator()*,何时调用const T&operator()const *。

它们具有相同的名称。

在这种情况下,如果在const对象上调用成员函数,则将调用const方法,并且将为非const对象调用non-const方法。 / p>

调用者如何知道应调用哪个同名成员函数?

他们不知道,他们也不应该。重载集的全部意义在于,调用者不知道调用了哪个确切的重载。这旨在成为实现细节。从重载集中调用函数时,调用者应使用相同的语法。

由重载集的作者根据调用函数的参数来完成正确的事情。

如果您确实希望调用者知道调用了哪个函数,那么不要完全使用重载集,只需提供具有不同名称的函数即可。