考慮下面的代碼片段:C++編程謎語,樂趣函數指針
#include <string>
#include <iostream>
int main()
{
std::string prefix("->"), middle(), suffix("<-");
std::cout << "Test: " << prefix << middle << suffix << std::endl;
return 0;
}
先進的C++程序員會立即看到middle()
並沒有叫std::string
的默認構造函數,取而代之的則是一個函數聲明。
雖然有趣:爲什麼GCC產生下面的輸出:
Test: ->1<-
相反,Visual Studio的鏈接錯誤?有人知道這裏發生了什麼嗎?
我有一個downvote和這個問題(離題)關閉請求,任何人都可以告訴我爲什麼。這樣的問題真的是關於SO的話題嗎? –