Dúvida em C++
2 participantes
Página 1 de 1
Dúvida em C++
Olá tenho uma dúvida em um programa de C++ e gostaria de saber se podem me ajudar?
Estou aprendendo C++ e peço desculpas se as dúvidas forem simples demais.
Qual seria a saída e por que?
class A{
public:
A() {
cout << 1;
}
};
class B: public A {
public:
B() {
cout << 2;
}
};
int main() {
A o1;
Bo2;
}
Desde já agradeço pela compreensão.
Estou aprendendo C++ e peço desculpas se as dúvidas forem simples demais.
Qual seria a saída e por que?
class A{
public:
A() {
cout << 1;
}
};
class B: public A {
public:
B() {
cout << 2;
}
};
int main() {
A o1;
Bo2;
}
Desde já agradeço pela compreensão.
Henrique M. Martins- Iniciante
- Mensagens : 7
Data de inscrição : 19/02/2016
Idade : 32
Localização : Rio Grande do Sul (RS)
Re: Dúvida em C++
Boa noite, Henrique!
Veja que foram criadas duas classes:
Classe A, com CONSTRUTOR A()
e
Classe B, com CONSTRUTOR B(). A diferença é que a classe B é derivada da classe A (class B : public A) este public A diz que todo objeto de B é um objeto do tipo A.
Ambos construtores só imprimem um valor simples na tela, nada mais além disso.
Mas, o que é um construtor?
É um método especial invocado AUTOMATICAMENTE na criação de um objeto da classe.
O método CONSTRUTOR não tem tipo (não pode ser void) mas pode conter parâmetros (o que não é o caso do exemplo).
Na função main foram criados dois objetos: o1 e o2.
O objeto o1 é do tipo A. Ao ser criado invoca o construtor A que imprime na tela "1".
O objeto o2 é do tipo B. Ao ser criado também invocará o seu construtor... mas, como a classe B é derivada da classe A, o objeto o2 invocará PRIMEIRO o construtor A para depois invocar o seu próprio construtor. Portanto, ao criar o objeto o2 imprimirá na tela, sequencialmente, "1" e depois "2".
Se executar, ficará na tela então o seguinte:
112
Obs.: Vou colar o código com alguns consertos para executar, ok?
Senão não roda
Abraços!
Espero ter ajudado!
Veja que foram criadas duas classes:
Classe A, com CONSTRUTOR A()
e
Classe B, com CONSTRUTOR B(). A diferença é que a classe B é derivada da classe A (class B : public A) este public A diz que todo objeto de B é um objeto do tipo A.
Ambos construtores só imprimem um valor simples na tela, nada mais além disso.
Mas, o que é um construtor?
É um método especial invocado AUTOMATICAMENTE na criação de um objeto da classe.
O método CONSTRUTOR não tem tipo (não pode ser void) mas pode conter parâmetros (o que não é o caso do exemplo).
Na função main foram criados dois objetos: o1 e o2.
O objeto o1 é do tipo A. Ao ser criado invoca o construtor A que imprime na tela "1".
O objeto o2 é do tipo B. Ao ser criado também invocará o seu construtor... mas, como a classe B é derivada da classe A, o objeto o2 invocará PRIMEIRO o construtor A para depois invocar o seu próprio construtor. Portanto, ao criar o objeto o2 imprimirá na tela, sequencialmente, "1" e depois "2".
Se executar, ficará na tela então o seguinte:
112
Obs.: Vou colar o código com alguns consertos para executar, ok?
- Código:
#include<iostream>
using namespace std;
class A
{
public:
A()
{
cout << 1;
}
};
class B: public A
{
public:
B()
{
cout << 2;
}
};
int main()
{
A o1;
B o2;
}
Senão não roda
Abraços!
Espero ter ajudado!
Baltuilhe- Fera
- Mensagens : 699
Data de inscrição : 23/12/2015
Idade : 47
Localização : Campo Grande, MS, Brasil
Re: Dúvida em C++
Muito obrigado, com certeza ajudou. Explicação perfeita!
Abraços!
Abraços!
Henrique M. Martins- Iniciante
- Mensagens : 7
Data de inscrição : 19/02/2016
Idade : 32
Localização : Rio Grande do Sul (RS)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|