调用重载函数时,函数返回值类型不在参数匹

时间2023-03-11 20:15:44 提问来自 新加坡 的网友 分类ChatGPT提问 浏览161 热度0
,只有函数名、参数个数和参数类型被检查。 ### 8.5 函数模板 函数模板是一种特殊的函数定义,它使用一个或多个类型参量,以便能够适用于不同的类型。使用函数模板时,必须在函数名前加上关键字template。 #### 8.5.1 简单的函数模板 ``` c++ template <typename T> // 函 数 模 板 声 明 T max(T a, T b) // 该 函 数 返 回 a 和 b 中 的 最 大 值 { return (a > b ? a : b); } // 该 语 句 需 要 C++11 或者之后版本才能使用三元运算符: ?: int main() { double x = max(1, 3.14); cout << x << endl; return 0; } // 由于max()是一个泛型函数,因此x的类型也会根据max()的参量决定;这里x将会是double类型 template <typename T> // 重载max()函数(不要忘记加上template关键字) T max(T a, T b, T c) { return (a > b ? (a > c ? a : c) : (b > c ? b : c)); } int main() { double y = max(1, 4.2, 5.6); cout << y << endl; return 0; }//y将会是double类型 template <typename T>// 重贴max()出版 (不要忘认加上template关键字) T max(const vector<T>& v) { if (!v.empty()) { auto result = v[0]; for (auto it = v.begin(); it != v.end(); ++it) if (*it > result) result = *it; return result; } else throw invalid_argument("empty vector");} int main(){ vector<double> dv{ 1, 4.2, 5 }; double z=max(dv); cout<<z<<endl; return 0;}//z将会是double类型

AI智能问答网免责声明:
以上内容除特别注明外均来源于网友提问、ChatGPT回答,权益归原著者所有,本站仅作效果演示和欣赏之用;
若以上展示有冒犯或侵害到您,敬请联系我们进行删除处理,谢谢!

上一篇 调用重载函数时,函数返回值类型不在参数匹 下一篇 帮我写一篇关于最难忘的事的作文要求不少于