Comment puis-je supprimer manuellement une instance d'une classe?

Comment puis-je supprimer manuellement une instance d'une classe?

Exemple:

#include <iostream>
#include <cstring>

class Cheese {
private:
    string brand;
    float cost;
public:
    Cheese(); //Default constructor
    Cheese(string brand, float cost); //Parametrized constructor
    Cheese(const Cheese & rhs); //Copy construtor
    ~Cheese(); //Destructor
    //etc... other useful stuff follows
}

int main() {
    Cheese cheddar("Cabot Clothbound", 8.99);
    Cheese swiss("Jarlsberg", 4.99);

    whack swiss; 
    //fairly certain that "whack" is not a keyword,
    //but I am trying to make a point. Trash this instance!

    Cheese swiss("Gruyère",5.99);
    //re-instantiate swiss

    cout << "\n\n";
    return 0;
}
Comment est "Cabot en toile," Cheddar - Vient de nulle part à proximité de Cheddar
Une variable (instance d'une classe) déclaré sur la pile peut avoir son mémoire à zéro avec memset (ce qui serait utile dans certains cas, je suppose...), mais sa mémoire ne peut pas être libéré jusqu'à la fin de la portée de la fonction vous avez déclaré dans (jusqu'à la fin de votre principal ici). Vous pouvez simplement remplacer votre contenu variable avec le constructeur de copie si vous voulez vraiment rester sur la pile, mais pourquoi ne pas utiliser le tas et les pointeurs dans ce cas, où vous pouvez delete votre instance?
en.wikipedia.org/wiki/Cheddar_cheese
Ce n'est pas comme du champagne. Ce n'est pas un terme protégé. Le nom fait référence à la recette qui est née au Cheddar. Un peu comme les millions de dollars "à l'Américaine" gris écureuils dont les parents et grands-parents ont même jamais entendu parler de l'Amérique laisser seuls ensemble de la patte!
Je sais que - malheureusement - mais l'anglais des trucs de Cheddar est le meilleur. Aussi le champagne est une autre invention anglaise.Raté encore une fois 🙁

OriginalL'auteur kmiklas | 2016-03-24