[计算机科学经

Name stdendl template typename t void nonref t x

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 鍵字 class 代替關鍵字 typename 來定義㆒個 type parameter。 關鍵字 typename 是 C++ 發 展晚期才引進的,在此之前只能經由關鍵字 class 引入 type parameter。關鍵字 class 目前依然可用。因此 template max()也可以被寫成如㆘等價形式: template <class T> inline T const& max (T const& a, T const& b) { // 如果 a<b 就傳回 b,否則傳回 a return a < b ? b : a; } 就語意而言,前後兩者毫無區別。即便使用關鍵字 class,你還是可以把任意型別 (包括 non-class 型別)當作實際的 template arguments。但是這麼寫可能帶來㆒些誤導(讓㆟誤以為 T 必須是 class 型別),所以最好還是使用關鍵字 typename。請注意,這和 class 的型別宣並不是同㆒回事: 宣告 type parameters 時我們不能把關鍵字 typename 換成關鍵字 struct。 2.1.2 使 用 Template 以㆘程式示範如何使用 max() function template: // basics/max.cpp #include <iostream> #include <string> #include "max.hp...
View Full Document

Ask a homework question - tutors are online