這個問題聽起來有點古怪,但檢查的代碼示例什麼參數構造函數的意思,當明確要求在聲明
#include <iostream>
using namespace std;
int main() {
string a, b(), c("test");
// No problems
a = c;
// tester.cpp:9:7: error: assignment of function ‘std::string b()’
b = c;
// tester.cpp:10:7: error: invalid conversion from ‘std::string (*)() {aka std::basic_string<char> (*)()}’ to ‘char’
a = b;
// No problems
c = a;
}
你可以看到,它看起來像B是被默認的構造函數創建,但實際上不是這樣。所以我的問題是,string b()
是什麼意思?
確實幾乎是一個愚蠢的玩法,但我覺得值得回答,因爲逗號加入了近戰。 – Bathsheba 2014-09-19 08:25:53