<iostream.h>:舊式頭文件,符號置於全局命名空間,C++ 標準已棄用。<iostream>:標準頭文件,符號封裝於 namespace std,支持模板化 I/O、命名空間隔離。兩者不可混用。新代碼強制使用 <iostream>;維護舊代碼可暫用 .h 版保持一致性。
std::cout << std::hex << 3.4 << std::endl; 最安全、無污染。using std::cout; using std::endl; 僅引入所需符號,推薦做法。using namespace std; 將整個 std 曝光至全局,簡便但易引發名字衝突。#include
using namespace std; // 危險!
template
T max(T a, T b) { return (a>b)?a:b; } // 與 std::max 衝突
int main() {
double x, y; cin >> x >> y;
cout << "Max: " << max(x,y) << endl; // 編譯錯誤:調用不明確
}
修正方案:改用 using 聲明,避免全局污染:
#include
using std::cin; using std::cout; using std::endl;
template
T max(T a, T b) { return (a>b)?a:b; }
int main() {
double x, y; cin >> x >> y;
cout << "Max: " << max(x,y) << endl; // OK
}
其他方案:重命名自定義函數、直接使用 std::max。養成「不寫 using namespace std;」的習慣,顯式聲明所需符號,是專業 C++ 開發者的基本素養。