C ++実験---テンプレートは良いことです

テンプレートは良いことです

説明
はPointクラスを定義します。

int型の2つのデータメンバーがあり、その水平座標と垂直座標を表します。

引数なしのコンストラクター。2つの座標を0に初期化します。

パラメーターを持つコンストラクター。

スペースで区切られたポイントの横座標と縦座標を出力するために使用される出力演算子<<をオーバーロードします。

クラステンプレートデータを定義します。

データメンバーデータは1つだけであり、データのタイプはtypeパラメーターで指定されます。

このクラステンプレートのコンストラクターを定義します。

void show()メソッドを定義して、データの値を表示します。

入力
は5行です。

最初の行は空白のない文字列です。

2行目から4行目はそれぞれ整数で、2行目と3行目は点の座標値です。

最後の行は文字です。
出力
の例を参照してください。
サンプル入力

test
1
2
3
c

サンプル出力

c
3
test
1 2

コード:

#include<iostream>

using namespace std; 
class Point{
    
    
	int x;
	int y;
public:
	Point(){
    
    
		x=0;
		y=0;
	}
	
	Point(int xx,int yy){
    
    
		x=xx;
		y=yy;
	}
	
	friend ostream& operator <<(ostream &os,const Point &P){
    
    
		os<<P.x<<' '<<P.y;
	}
};

template<class T>
class Data{
    
    
	T data;
public:
	Data(T t){
    
    
		data=t;
	}
	
	void show(){
    
    
		cout<<data<<endl;
	}
};


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;
}

おすすめ

転載: blog.csdn.net/timelessx_x/article/details/115095628