Programar em C++/Herança (editar)
Revisão das 12h44min de 28 de janeiro de 2010
, 28 de janeiro de 2010→Passando parâmetros para construtores da classe base
[edição não verificada] | [edição não verificada] |
Agora imaginemos que temos um conjunto de bases para uma classe que queiramos derivar, então podemos ter um construtor em cada base que precise de parâmetros para que possa ser invocado pela nossa classe. Como poderemos passar os parâmetros, uma vez que os mesmos só podem ser passados durante a inicialização da classe?
Para que possamos passar os parâmetros para as classes bases durante a inicialização do objeto da classe derivada temos o recurso de passagem de parâmetros pelo construtor. Basicamente, ele funciona como se passássemos valores para variáveis membro. Chamamos cada construtor na lista de passagem de valores, a sintax para declarar o corpo do construtor é a seguinte:
<source lang="cpp">
class Classe_derivada : public Base1, public Base2, ..., public BaseN
{ // Membros...
public:
Classe_derivada(lista_de_argumentos);
// Outras funções...
};
Classe_derivada::Classe_derivada(lista_de_argumentos) : Base1(lista_de_argumentos), Base2(lista_de_argumentos), ...BaseN(lista_de_argumentos);
{
int i;
public:
base(int x) { i = x; cout << "
~base() { cout << "
};
class
{
int j;
public:
~
void show() { cout << i << " " << j << "\n"; }
};
int main()
{
ob.show(); //
#ifdef WIN32
system ("pause");
#endif
return 0;
}
</source>
<source lang="cpp">
▲aqui vai mais um exemplo.
#include <iostream>
using namespace std;
class base1
{
~base1() { cout << "Destructing base1\n"; }
};
class base2
{
~base2() { cout << "Destructing base2\n"; }
};
class derived: public base1, public base2
{
void show() { cout << i << " " << j << " " << k << "\n"; }
};
int main()
{
return 0;
}
</source>
== Controlando o acesso ==
|