// IG17 2004-05, II17 2005-06 // EjemploCadena.cpp // 16-11-2004 // Ejemplo de uso de la clase Cadena. // Esto no es un test para comprobar que todo funciona correctamente. // solo ilustra como se puede hacer uso de los operadores y constructores. // Un test exhaustivo deberia considerar mas casos (cadenas vacias...). #include using namespace std; #include "Cadena.h" int main () { cout << endl << "Probando inicializaciones y operador de salida:" << endl; Cadena c1("a la una..."), c2("a las dos..."), c3, c4(""); cout << "[" << c1 << "]" << endl; cout << "[" << c2 << "]" << endl; cout << "[" << c3 << "]" << endl; cout << "[" << c4 << "]" << endl; cout << endl << "Probando constructor de copia:" << endl; Cadena c11(c1), c22(c2), c33(c3), c44(c4); cout << "[" << c1 << "]" << endl; cout << "[" << c11 << "]" << endl; cout << "[" << c2 << "]" << endl; cout << "[" << c22 << "]" << endl; cout << "[" << c3 << "]" << endl; cout << "[" << c33 << "]" << endl; cout << "[" << c4 << "]" << endl; cout << "[" << c44 << "]" << endl; cout << endl << "Probando operador de asignacion:" << endl; c11 = c22; cout << "[" << c22 << "]" << endl; cout << "[" << c11 << "]" << endl; cout << endl << "Probando una auto-asignacion:" << endl; c11 = c11; cout << "[" << c11 << "]" << endl; cout << endl << "Probando operator== :" << endl; cout << (Cadena("a la una") == Cadena("a la una")) << endl; cout << (Cadena("a la una") == Cadena("a las dos")) << endl; cout << endl << "Probando operator<= :" << endl; cout << (Cadena("a las dos") <= Cadena("a las tres")) << endl; cout << (Cadena("a las tres") <= Cadena("a las dos")) << endl; cout << endl << "Probando operator+ :" << endl; cout << "[" << c1 + c2 << "]" << endl; cout << endl << "Probando operator+= :" << endl; c1 += c2; cout << "[" << c1 << "]" << endl; c11 = c1; c11 += c11; cout << "[" << c11 << "]" << endl; cout << endl << "Probando a usar explicitamente el constructor en expresiones:" << endl; c3 = c1 + Cadena("a las tres"); cout << "[" << c3 << "]" << endl; cout << endl << "Probando a usar implicitamente el constructor como conversor" << " de vector de char a Cadena:" << endl; c4 = c1 + "a las tres"; cout << "[" << c4 << "]" << endl; cout << endl << "Probando a llamar explicitamente al destructor y seguir usando los objetos:" << endl; Cadena c5("un ejemplo"), c6(""), c7, c8; c5.~Cadena(); c6.~Cadena(); c7.~Cadena(); cout << "[" << c5 << "]" << endl; cout << "[" << c6 << "]" << endl; cout << "[" << c7 << "]" << endl; cout << "[" << c5+c6+c7+c8 << "]" << endl; cout << (c5==c8) << endl; c5 += c6 + c7 + "dos palabras" + c8; cout << "[" << c5 << "]" << endl; return 0; }