test rapero4
![]() |
![]() |
![]() |
Título del Test:![]() test rapero4 Descripción: rapero4 |




Comentarios |
---|
NO HAY REGISTROS |
El constructor de una clase es el responsable de crear los objetos de dicha clase. V. F. Un objeto puede ser copiado incluso si no ha sido definido el constructor copia ni el operador de asignación. F. V. En determinadas circunstancias puede ser necesario utilizar delete this; para poder destruir un objeto desde una operación del mismo. V. F. Una composición entre una clase A y otra B es incompatible con la existencia al mismo tiempo de una asociación entre B y A. F. V. Tras aplicar una metodología de diseño, el proceso de implementación implica definir una clase de objetos por cada proceso y una llamada a operaciones por cada flujo. F. V. Cualquier operación de una clase que termine con return *this puede hacer esta devolución por referencia. V. F. Aunque el constructor copia y el operador de asignación tienen una función distinta, su implementación es siempre la misma. V. F. Una dependencia indica una colaboración de algún tipo entre dos clases en las situaciones en las que no existe una relación de mayor importancia entre ellas, como asociaciones, composiciones, etc. F. V. Cuando una composición se implementa en C++ mediante punteros, el destructor de la clase debe asegurarse de eliminar todos los objetos compuestos existentes en memoria. V. F. La creación de un array de objetos (no dinámicos) no es posible si la clase no dispone de un constructor por defecto (explícito o implícito). F. V. No es posible conocer el instante en el que se llama a un destructor de un objeto creado de forma directa, puesto que esta operación es invocada automáticamente por el sistema. F. V. El uso de un recolector de basura evita la necesidad de realizar asignaciones de memoria dinámica. F. V. El código de la clase A mostrado a continuación indica una relación de asociación con la clase B: class A{ B*b[10]; public: A(){ for(int c=0;c<10;c++){ b[c]=newB(); } B*getB(int i){ return b[i]; } -A(){ for(int c=0; c<10;c++); delete b[c]; } };. F. V. El constructor de la clase A se define como: A(B& param_b, c& param_c):b(param_b),c(param_c){}; Siendo B y C dos clases de objetos. Entonces A tienen una asociación con las clases B y C. F. V. Si se define sobre la clase CVector el siguiente operador: CVector& operator+=(float r ); Entonces la siguiente expresión es sintácticamente correcta siendo a un objeto de tipo CVector: CVector b=a+=100.0;. V. F. Dada una clase A, una definición de su constructor copia de la siguiente manera es incorrecta: A(A a){atributo1=a.atributo1;}. V. F. La creación/destrucción de un objeto en la pila de la aplicación es en general más rápida que la de un objeto residente en el heap. V. F. El uso de operadores puede en ocasiones hacer más confusa la interfaz de una clase de objetos. V. F. La siguiente definición de la clase A es correcta. La clase Bincluye un único constructor que recibe un entero como parámetro: class A{ B b; public: A (int K){ B b(k);}};. F. V. En el código a+=b, siendo a y b dos clases cualesquiera, se ha realizado una llamada implícita al constructor copia. V. F. Es posible que exista una relación de asociación entre las clases A y B dada la siguiente declaración dentro de la clase A: vector <B> *a;. V. F. La siguiente sentencia dentro de la definición de la clase claseA implica que existe una relación de asociación entre las clases claseA y claseB: vector <claseB> v;. F. V. La siguiente implementación de la operación sumar para números complejos no es satisfactoria: Complejo*Complejo::sumar(Complejo& c){ Complejo *s=new Complejo(r+c.r,i+c.i); Return s; }. V. F. Si una composición entre A y B se implementa mediante un atributo en la clase A de la siguiente manera: B *b; La única diferencia con una asociación es que el constructor de A o en alguna otra operación existirá una creación similar a la siguiente: b=new B();. V. F. En referencia nuevamente al ejemplo anterior, supongamos que existe la operación: B* A::obtener () que retorna el valor del atributo b. Entonces en una tercera clase C no debe existir la siguiente sentencia: delete a.obtenerB(); Siendo a un objeto de la clase A. V. F. No es posible realizar copias entre objetos dinámicos utilizando el operador=. V. F. Es posible que el constructor copia proporcionado por el compilador para una clase falle y sin embargo el operador de asignación definido por el compilador funcione correctamente. F. V. Se ha decidido implementar la relación uno mediante una lista. En ese caso una sentencia de este tipo es válida: list<B>::iterator it=uno.begin(); it+=5;. V. F. La relación dos se ha implementado utilizando punteros y un vector del modo: vector<B*> *dos; en este caso es necesario emplear la sentencia new() en la inicialización o mantenimiento de esta relación. V. F. Un objeto llamado objetoB de tipo B, siempre va a poder incrementar el valor de B::b con la función incrementa_b indistintamente a travésde lasrelaciones uno o dos . F. V. Si la clase A necesita hacer búsquedas de objetos de la clase Bno se hace necesario el empleo de contenedores asociativos. V. F. Una clase de objetos es un elemento de laOPPque no comparte características comunes con los tipos de datos abstractos (TDA). F. V. El siguiente fragmento de código es correcto (desde el punto de vista de funcionamiento). void meterDigitos(vector<int>v){ for (int c=0; c<10;c++){v.push_back(c);}}. V. F. Siempre que sea posible la implementación de una composición introduciendo los objetos compuestos como atributos de la clase continente es preferible a la alternativa dinámica. V. F. La siguiente declaración de una estructura de datos compleja es válida: set<vector<int>> <conjuntoDeVectores;. F. V. La siguiente operación del operador == para una clase A no es correcta: bool A::(const A& a, const A& b);. V. F. A partir del siguiente código es posible deducir a lo sumo una relación de dependencia de la clase A respecto a la clase B. void A::op1( ){ B *b=new B( ); b->op2(7); delete b;}. V. F. Cualquier contenedor de STLpermite realizar la operación it++; con sus iteradorespero no necesariamente (*it)++;. V. F. Para definir cualquier contenedor asociativo de tipo T, es necesario que el operador < esté sobrecargado sobre la clase T. F. V. Para definir una tabla hash de STL es necesario indicar la función hash y el tamaño final de la tabla. F. V. |