c++为了兼容c,也是采用单遍编译。这特别影响函数重载决议(当c++编译器读到一个函数调用语句时,它必须从目前已看到的同名函数中选出最佳函数,哪怕后面的代码中出现了更合适的匹配)
1 #include<iostream> 2 using namespace std; 3 void f(int a ) 4 { 5 cout << (int)a << endl; 6 } 7 void b(char a) 8 { 9 f(a); 10 } 11 void f(char a) 12 { 13 cout << a << endl; 14 } 15 void bb(char a) 16 { 17 f(a); 18 } 19 int main() 20 { 21 b('d'); 22 bb('d'); 23 }
vs2015输出是
100
d