C ++ Capítulo 13

Capítulo herança XIII classe

13.1.1 derivar uma classe

     1, classe derivada objectos armazenados nos membros de dados de classe de base

     2, objectos derivados classe pode utilizar a classe base.

     3, a classe derivada precisa de seu próprio construtor.  

     4, a classe derivada pode adicionar membros de dados adicionais e funções de membro, conforme necessário.

Considere acesso: 13.1.12 construtor

     1, a classe derivada não pode acessar diretamente os membros privados da classe base, e deve ser acessado através dos métodos de classe base.

     2, o construtor de classe derivada deve usar o construtor de classe base.

     3. Quando você cria um objeto de classe derivada, o programa primeiro criar um objeto de classe base.

     4, a libertação do objecto para criar o objecto com o oposto a fim de que realizada destruidor de classe primeiro derivado, em seguida, o processo de destruição chama automaticamente o classe base.

13,2 a relação especial entre a classe de base e classes derivadas

     1, objectos derivados classe pode utilizar os métodos da classe de base, com a condição de que o método não é privada.

     2, um ponteiro de base pode apontar para uma classe de objectos derivados sem conversão explícita; pode referir-se a um referências de objeto classe base derivados sem conversão explícita;

     3, apenas ponteiro de base ou de referência para as chamadas de método de classe base.

     4, geralmente C ++ requer referência ao tipo de jogo e atribuído a um tipo de ponteiro, mas esta regra é uma exceção a herdá-la.

13,3 herdar --is-um relacionamento

     1, três métodos de herança: herança público, de herança privada, de herança protegida.

     2, herança pública é a forma mais comum de estabelecer uma relação é-um, isto é, um objecto derivado é um objecto de classe de base, pode ser realizada em qualquer classe de derivados objetos operações de classe de base no objecto.

Mais de 13,4 estatal herança pública

     1, polimórfica herança pública: métodos de classe de bases redefinido em uma classe de derivados, um método virtual.

     2, por isso precisa destructor imaginário
         usando código de liberação de exclusão atribuído pelo novo objeto.

#include "stdio.h" 
#include "string.h" 
#include "algoritmo" 
o using namespace STD; 

classe Latão { 
privada: 
    enum {} MAX = 35; 
    caractere a fullName [MAX]; 
    Longo ACCTNUM; 
    Balance Duplo; 
público: 
    Latão (char const * S = "Nullbody", Long an = -1, Double BAL = 0,0); 
    vazio Depósito (Duplo AMT); 
    virtual void a retirada (Duplo AMT); 
    /// palavras-chave críticos virtuais utilizados: o método de selecção de programa de acordo com o tipo de referências ou ponteiros para objectos 
    /// não usado, o programa irá ser escolhido de acordo com o método do tipo de uma referência ou ponteiro. (Classe base e método de aulas de substituição derivada) 
    Balance duplo () const; 
    nula ViewAcct () const Virtual; 
    Virtual ~ Bronze () {} 
}; 
/// PLUS Brasss a classe Conta 
BrassPlus classe:
private:
    dobrar maxLoan; 
    taxa dupla; 
    dobrar owerBank; 
público: 
    BrassPlus (const char * s = "Nullbody", Long An = -1, duplo bal = 0,0, duplo m1 = 500, duplo r = 0,10); 
    BrassPlus (const bronze & bA, duplo m1 = 500, duplo r = 0,1); 
    vazio ViewAcct () const virtual; 
    virtual void Retira (double AMT); 
    ResetMax vazio (duplo m) {maxLoan = m;} 
    ResetRate vazio (duplo r) {taxa = r;} 
    ResetOwes vazios () {owesBank = 0;} 
};

 

Acho que você gosta

Origin www.cnblogs.com/yrz001030/p/12453076.html
Recomendado
Clasificación