最近我看到了这个C++标准段落(http://eel.is/c++draft/expr.post#expr.call-5):
如果postfix-expression指定析构函数,则函数调用表达式的类型为void; 否则,函数调用表达式的类型是静态选择函数的返回类型(即,忽略虚拟关键字),即使实际调用的函数的类型不同.此返回类型应为对象类型,引用类型或cv void.
我真的不明白这一部分:
函数调用表达式的类型是静态选择函数的返回类型(即,忽略虚拟关键字),即使实际调用的函数的类型不同.
即使实际调用的函数类型不同.
调用表达式如何实际调用所选择的不同类型的函数?
c++ virtual-functions static-typing language-lawyer covariant-return-types