第15周-專案3-max帶來的衝突

kewlgrl發表於2015-06-17

問題及程式碼:


源程式:

#include<iostream>
using namespace std;
//定義函式模板
template<class T>
T max(T a, T b)
{
    return (a>b)?a:b;
}

int main()
{
    int x=2,y=6;
    double x1=9.123,y1=12.6543;
    cout<<"把T例項化為int:"<<max(x,y)<<endl;
    cout<<"把T例項化為double:"<<max(x1,y1)<<endl;
    return 0;
}

修改後的:
/*   
*Copyright (c)2015,煙臺大學計算機與控制工程學院   
*All rights reserved.   
*檔名稱:Error.cpp   
*作    者:單昕昕   
*完成日期:2015年6月17日   
*版 本 號:v1.0   
*問題描述:分析下面程式出現的編譯錯誤,給出解決的方案。
*程式輸入:無。
*程式輸出:依程式。
*/ 
#include<iostream>
using namespace std;
//定義函式模板
template<class T>
T max(T a, T b)
{
    return (a>b)?a:b;
}

int main()
{
    int x=2,y=6;
    double x1=9.123,y1=12.6543;
    cout<<"把T例項化為int:"<<::max(x,y)<<endl;
    cout<<"把T例項化為double:"<<::max(x1,y1)<<endl;
    return 0;
}


執行結果:


知識點總結:
名稱空間。

學習心得:

有衝突的時候有兩種解決方法:

1.改名字;

2.在名字前面加::。

相關文章