"a string") Console.WriteLine("Called the method with a string.");}
您将得到每个方法调用的注释中显示的输出我理解编译器为什么选择它所做的重载,但是为什么首先允许这样做呢?我不是在问重载解析规则是什么,我理解这些规则,但我是在问编译器为什么允许具有相同签名的两个重载<em
CrtpBase类实例化和不实例化的条件。在第(2)点,当我调用foo()时,编译器应该生成一个可能重载的列表。这些将是Child::foo()和Child::_Parent::foo()。编译器不知何故知道Child::foo将是最佳匹配,并停止过载解析过程。
当我取消注释// using ...时,要求编译器显式地使用基函数重载作为匹配项之一,没有任何变化,它会再次编译。只是想总结一下我从下面的答案中了解到的,