1. 程式人生 > >模板是個好東西

模板是個好東西

Description

定義Point類:

  1. 有兩個int型別的資料成員,表示其橫縱座標。

  2. 無參建構函式,初始化兩個座標為0。

  3. 帶參建構函式。

  4. 過載其輸出運算子<<,用於輸出一個點的橫座標和縱座標,中間用一個空格隔開。

定義一個類模板Data:

  1. 只有一個數據成員data,data的型別是由型別引數指定的。

  2. 定義該類模板的建構函式。

  3. 定義void show()方法,用於顯示data的值。

Input

輸入有5行。

第1行是一個不含空白符的字串。

第2~4行分別是一個整數,其中第2、3行是點的座標值。

最後一行是一個字元。

Output

見樣例。

Sample Input


test
1
2
3
c
Sample Output
c
3
test
1 2
HINT
Append Code
append.cc,

int main()
{
    string n;
    int x, y, d;
    char c;
    cin>>n;
    cin>>x>>y>>d;
    cin>>c;
    Point p(x, y);
    Data<char> aChar(c);
    Data<int> anInt(d);
    Data<Point> aPoint(p);
    Data<string
> aString(n); aChar.show(); anInt.show(); aString.show(); aPoint.show(); return 0; }

AC程式碼

#include <iostream>
#include <vector>
using namespace std;
class Point
{
protected:
    int _x,_y;
public:
    Point(int x=0,int y=0):_x(x),_y(y){}
    friend ostream& operator
<<(ostream& os,const Point& p) { os<<p._x<<" "<<p._y<<endl;//這裡又一次忘記了p.你可要記住呀; return os; } }; template<typename T>//這裡沒有分號 class Data { public: T data; public: Data(T d):data(d){} void show(){cout<<data<<endl;}//這裡輸出的data,而不是d,分清楚呀; }; int main() { string n; int x, y, d; char c; cin>>n; cin>>x>>y>>d; cin>>c; Point p(x, y); Data<char> aChar(c); Data<int> anInt(d); Data<Point> aPoint(p); Data<string> aString(n); aChar.show(); anInt.show(); aString.show(); aPoint.show(); return 0; }