? 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