














Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
DEV C++ Introdução à Computação
Tipologia: Exercícios
1 / 22
Esta página não é visível na pré-visualização
Não perca as partes importantes!















PROF. WALLACE CASACA DEZEMBRO/ 2020
▪ Uma classe é um “tipo” definido pelo usuário (semelhante com
▪ Estas funções (métodos) vão agir sobre os dados (atributos) da
▪ Toda classe deve ter um construtor , que é um método com o
▪ O construtor é chamado quando um objeto é declarado no programa, e
▪ Uma classe pode ter vários construtores, com diferentes argumentos
CONSTRUTORES (NA PRÁTICA)
int main (void) { retangulo r1; //chama o construtor padrão p/ preencher r retangulo r2; //chama o construtor padrão p/ preencher r retangulo *p; //aqui NÃO chama o construtor (pq é um ponteiro) p = new retangulo; //agora sim, chama o construtor para p cout << r1.a << p->a << endl; //imprimi valor a de r1 e de p return 0; }
Resumindo : “A chave da sobrevivência é a adaptação”. Permite que uma mesma operação possa ser definida/realizada para diferentes tipos de classes/subclasses de forma que cada uma delas possa ser implementada como quiser.
Permite a um mesmo objeto se manifestar de diferentes formas.
int main (void) { retangulo r1(2,2); //chama o novo construtor que implementamos retangulo *p; //cria um ponteiro de retângulo p = new retangulo(); //chama o construtor padrão ( default ) cout << r1.a << endl; //o que será impresso? cout << p->a << endl; //o que será impresso? return 0; }
class retangulo ... retangulo() { ... } retangulo( float a_f, float b_f) { a = ( int )a_f; b = ( int )b_f; } ... retangulo r3(1.1, 2.3);
Escopo O C++ oferece 3 níveis (modificadores) de Proteção de métodos e atributos: public (público): Métodos e atributos podem ser acessados de qualquer parte do programa. private (privado): Apenas métodos daquela classe podem acessar. Tentativas de chamadas de métodos private fora da classe resultam em erro de compilação. protected (protegido): Apenas métodos implementados na classe e métodos derivados (herdados) tem acesso.
Para exemplificar a) Redefinir uma nova função ‘calculaArea()’, só que agora sem passar parâmetros. b) Fazer o teste: int main(void) { retangulo r(3,4); cout << “Area (func. publica): “ << r.calculaArea() << endl; cout << ”Diagonal (private): “ << r.calculaDiag() << endl; //erro: pois calculaDiag é privado
b) Fazer o novo teste: int main (void) { retangulo r(3,4); cout << ”Area (func. publica): “ << r.calculaArea() << endl; cout << ”Perímetro (publica): “ << r.calculaPTri() << endl; //calculaPTri é pública, e está na classe, então ela pode acessa calculaDiag, que é privada.
A classe que herda é chamada de subclasse e aquela que fornece é chamada de superclasse (classe mãe). No construtor da subclasse , pode-se passar parâmetros para o construtor da classe mãe.
a) Criar uma subclasse da classe retangulo chamada quadrado class quadrado: public retangulo { public: int perimetro; //Construtor para a subclasse ’quadrado’ quadrado(): retangulo() { perimetro = 2*(a + b); } };