當前位置:編程學習大全網 - 編程軟體 - C++中的模板中引用的問題

C++中的模板中引用的問題

1 不能加引用

這裏的代碼是 return Pair<T, U> (f, s)。

Pair<T, U> (f, s)是調用構造函數生成壹個匿名對象。這個對象是語法臨時生成。這類臨時性質的匿名對象是不允許加引用的。

例如:

Pair<int, double> a =Pair<int, double>(20, 1.782); //允許。

Pair<int, double>& a =Pair<int, double>(20, 1.782); //不允許。

2 cout << mp("hello", 19) << endl;//使用引用有問題, 為什麽

所有模版是進行類型展開。

“hello”屬於靜態常量,其類型是char[6]。

我們把代碼做語法展開,數組的引用?char[6]的引用如何表示?

語法上基本類型的數組根本沒有引用這種語法。

所以這裏可以改成字符傳對象來處理:

cout << mp(string("hello"), 19) << endl;

  • 上一篇:2022年高考490分能讀人工智能專業嗎
  • 下一篇:簡單編程應用的例子
  • copyright 2024編程學習大全網