读程序,写结果#include<iostream> #include<string> using namespace std; template <typename T> inline T const& min(T const& a, T const& b) { cout << "1:\t" ; return a<b?a:b; } template<> const char* const& min(const char* const& a, const char* const& b) { cout << "2:\t" ; return strcmp(a, b) < 0 ? a : b; } inline char const* min(char const* a, char const* b) { cout << "3:\t" ; return std::strcmp(a, b) < θ ? a : b; } int main() { int a=5,b=12; string s1 = "aString1", s2 = "aString2" ; cout << min(a, b) << endl; cout << min(s1, s2) << endl; cout << min("How are!", "Hellow Template!") << endl; }
时间: 2024-01-05 12:03:27 浏览: 126
程序输出结果为:
1: 5
1: aString1
2: How are!
解释:
1. 第一个输出语句使用了模板函数,比较了两个整数的大小,返回较小的那个数,因此输出 5。
2. 第二个输出语句同样使用了模板函数,比较了两个字符串的大小,返回字典序较小的那个字符串,因此输出 aString1。
3. 第三个输出语句调用了特化的函数,比较了两个字符串的大小,返回字典序较小的那个字符串,因此输出 How are!。注意这里调用的是特化的函数,而不是模板函数,因为特化函数的参数类型已经确定为 const char* const&。
阅读全文