同時解決上http://cppquiz.org一個測試,我發現這個有趣的一段代碼:這個簡短的程序合法的C++嗎?
#include <iostream>
int f(int& a, int& b) {
a = 3;
b = 4;
return a + b;
}
int main() {
int a = 1;
int b = 2;
int c = f(a, a);// note a,a
std::cout << a << b << c;
}
我的問題是程序合法C++或者它不是?我擔心嚴格的走樣。
您是否嘗試過運行它? (我真的不確定你認爲什麼是非法的 - 事實是你將同一個論點兩次傳遞給一個函數?) –
是的,這是合法的。爲什麼不呢? –
AFAIK,這是合法的;這是不明智的,但它是合法的。 –