Vector.h
template < class T >
class Vector
{
public:
Vector( int nArraySize )
{
nSize = nArraySize;
arreglo = new T[ nArraySize ];
reset();
}
int size()
{
return nWriteIndex;
}
void reset()
{
nWriteIndex = 0;
nReadIndex = 0;
}
void add( const T& object )
{
if( nWriteIndex < nSize )
{
arreglo[ nWriteIndex++ ] = object;
}
}
T &get()
{
return arreglo[ nReadIndex ];
}
protected:
int nSize;
int nWriteIndex;
int nReadIndex;
T *arreglo;
};
Main.cpp
#include <iostream>
#include <cstdlib>
#include <string>
#include "Vector.h"
using namespace std;
void intFc()
{
Vector < int > integers( 10 );
cout << "Introduce el valor para llenar el vector\n"
<< "Introduce un negativo para salir: " << endl;
for( ; ; )
{
int n;
cin >> n;
if( n < 0 )
{
break;
}
integers.add( n );
}
cout << "Numeros introducidos por el usuario: " << endl;
for( int i = 0 ; i < integers.size() ; i++ )
{
cout << i << " : " << integers.get() << endl;
}
}
class Name
{
public:
Name() = default;
Name( string s ) : name( s ) {}
const string &display()
{
return name;
}
protected:
string name;
};
void nameFc()
{
Vector < Name > names( 10 );
cout << "Introduce nombres para agregar\n"
<< "Introduce x para salir" << endl;
for( ; ; )
{
string s;
cin >> s;
if( s == "x" || s == "X" )
{
break;
}
names.add( Name( s ) );
}
cout << "Nombres introducidos por el usuario: " << endl;
for( int i = 0 ; i < names.size() ; i++ )
{
Name &name = names.get();
cout << i << " : " << name.display() << endl;
}
}
int main( int argc , char *argv[] )
{
intFc();
nameFc();
system("pause");
return 0;
}
No hay comentarios:
Publicar un comentario