Buscar

[Prof. Emiliana] Correcao_Prova3

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Continue navegando


Prévia do material em texto

UNIVERSIDADE FEDERAL DE OURO PRETO
INSTITUTO DE CIÊNCIAS EXATAS E BIOLÓGICAS
DEPARTAMENTO DE COMPUTAÇÃO
BCC702 - PROGRAMAÇÃO DE COMPUTADORES II
Correção Prova 3
Valor: 10 pontos
28/06/2010
1. {3.0 pts.} Considerando as seguintes definições de classes, responda:
class Cachorro{
public :
void printRaca ( ) {
cout << "Raca nao d e f i n i d a \n" ;
}
} ;
class Boxer : public Cachorro{
public :
void printRaca ( ) {
cout << "Boxer\n" ;
}
} ;
class Cocker : public Cachorro{
public :
void printRaca ( ) {
cout << "Cocker\n" ;
}
} ;
class Schnauzer : public Cachorro{
public :
void printRaca ( ) {
cout << "Schnauzer\n" ;
}
} ;
(a) Qual seria a saída do seguinte programa?
void main ( ) {
Cachorro ∗ caes [ 4 ] ;
caes [ 0 ] = new Cachorro ( ) ;
caes [ 1 ] = new Boxer ( ) ;
caes [ 2 ] = new Cocker ( ) ;
caes [ 3 ] = new Schnauzer ( ) ;
for ( int i =0; i <4; i++)
caes [ i ]−>printRaca ( ) ;
}
SOLUÇÃO:
Raca nao definida
Raca nao definida
Raca nao definida
Raca nao definida
(b) Este é um exemplo de herança? Justifique sua resposta.
SOLUÇÃO:
Sim. Pois, as classes Boxer, Cocker e Schnauzer herdam os métodos e atributos
da classe Cachorro. Veja o código �: public Cachorro�, após o nome de cada classe
derivada, indicando herança pública.
(c) Este é um exemplo de polimorfismo? Justifique sua resposta.
SOLUÇÃO:
Não. Pois, apesar de cada classe derivada ter redefinido o método printRaca() da
classe base (Cachorro), nota-se que ele não é declarado virtual. Portanto, não há
polimorfismo.
2. {4.0 pts.} Crie uma classe C++ denominada Tempo que representa um horário. Para
tanto, devem ser definidos três atributos inteiros denominados h (para horas), m (para
minutos) e s (para segundos). Em seguida:
(a) Crie um construtor que inicialize os dados com zero e outro construtor que inicialize
os dados com valores passados como parâmetros;
(b) Acrescente à classe o operador de soma binário (+).
Observação: Não se esqueça de garantir a consistência dos dados na implementação.
Isto é, os horários válidos estão no intervalo de 00:00:00 às 23:59:59.
3. {1.0 pts.} Marque a alternativa correta. Template é um meio de:
(a) X Gerar uma família de funções/classes;
(b) Gerar uma família de variáveis/programas;
(c) Gerar um novo operador para a linguagem.
4. {1.0 pts.} Marque a alternativa correta. Um objeto de uma classe derivada contém:
(a) X Todos os membros da classe base;
(b) Somente os membros públicos (public) da classe base;
(c) Somente os membros protegidos (protected) da classe base;
(d) Somente os membros públicos e protegidos da classe base.
5. {1.0 pts.} Marque a alternativa correta. Uma função virtual pura é uma função que:
(a) Não retorna nada;
(b) Tem o mesmo nome da classe;
(c) Não recebe argumentos;
(d) X Não tem implementação.