Experimento C ++ --- la plantilla es algo bueno

Las plantillas son algo bueno

La descripción
define la clase Point:

Hay dos miembros de datos de tipo int, que representan sus coordenadas horizontales y verticales.

Constructor sin argumentos, inicializa las dos coordenadas a 0.

Constructor con parámetros.

Sobrecarga su operador de salida <<, que se utiliza para generar la abscisa y la ordenada de un punto, separados por un espacio.

Definir una plantilla de clase Datos:

Solo hay un miembro de datos y el tipo de datos se especifica mediante el parámetro de tipo.

Defina el constructor de esta plantilla de clase.

Defina el método void show () para mostrar el valor de los datos.

La entrada
tiene 5 líneas.

La primera línea es una cadena sin espacios en blanco.

Las líneas 2 a 4 son un número entero respectivamente, y las líneas 2 y 3 son los valores de las coordenadas de los puntos.

La última línea es un personaje. Vea el ejemplo de
Salida
.
Entrada de muestra

test
1
2
3
c

Salida de muestra

c
3
test
1 2

código:

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

Supongo que te gusta

Origin blog.csdn.net/timelessx_x/article/details/115095628
Recomendado
Clasificación