? Porque C + + usa uma programação orientada a objetos , ou modelo de POO , como parte de seu projeto , os programadores devem se familiarizar com alguns conceitos de POO como classes e objetos. Quando um programador deseja desenvolver um objeto para uso no código, ela deve projetar a funcionalidade do objeto em uma "classe". Uma classe define os dados e funções que um objeto pode usar. Um tipo específico de função de objeto , o destrutor virtual, para o seu uso exige que um programador entender o papel de destruidores nas aulas , o conceito de herança de classe , eo uso de funções virtuais em programação C + +. Herança
A força da OOP reside no conceito de herança . Quando um programador deseja estender a funcionalidade de um objeto, ou se um objeto compartilha grande parte da funcionalidade de um outro objeto com apenas pequenas diferenças , o programador pode derivar uma classe de outra . Quando uma classe deriva de outra classe (a classe "Base "), ele tem acesso às variáveis e funções definidas na primeira classe. Neste exemplo , a classe "bola" deriva da classe " esfera " e estende sua funcionalidade
classe Sphere {
público : .
Int getRadius () {
retornar r;
}
int r;
}
Bola classe : Esfera pública {
público :
cor string;
}
funções virtuais
Desde uma classe derivada tem acesso a todas as funções da classe base, ele pode usá-los como qualquer momento, como se agisse como a classe base . No entanto , a classe derivada pode modificar , em vez de uma função na classe base para atender às suas necessidades. Além disso, uma classe base pode servir como um modelo para a classe derivada. Neste caso , a classe base irá nomear funções sem definir o que fazer, em vez de deixar que a classes derivadas. Uma função em uma classe base que não faz nada , em vez de deixar uma classe derivada para implementá-lo , é chamada de função "virtual".
Destruidores
Integral ao objeto do projeto é a implementação de " construtor " e funções " destruidor " . A função de construtor de uma classe define como um objeto criado a partir da classe irá inicializar primeiro em si ( que valores de dados padrão, ele irá conter , por exemplo) . O processo de destruição , pelo contrário, determina o que acontece quando um objeto é excluído da memória ( como a informação em que é excluída, por exemplo). Este código de exemplo mostra como uma classe define primeiro construtor e destruidor funções
Sphere classe {
Sphere (); . //Construtor
~ Sphere ( ) //destructor
}
destruidores Virtual
por causa de como as classes e destruidores trabalhar , quando uma classe derivada é apagada da memória , tanto o destruidor do derivado classe eo destrutor da classe base deve ser chamado. Para conseguir isso , os programadores criar destruidores virtuais em classes de base , que as classes derivadas podem definir. Este exemplo mostra uma classe base com um destrutor virtual e uma classe derivada com o seu próprio destruidor
classe Sphere {
Sphere (); .
~ Esfera virtual () { } //a palavra-chave "virtual" denota uma classe virtual
}
Bola classe : Esfera pública {
Ball ( );
~ Bola () : //exclusão de um objeto "bola" vai chamar este processo de destruição e destruidor Sphere