class shape{
public:
shape(string a, bool b):name(new string), moral(new bool){
*name=a;
*moral=b;
}
shape():name(new string),moral(new bool){
*name="shape";
*moral=true;
}
~shape(){
delete name;
delete moral;
}
protected:
string* name;
bool* moral;
};
class circle:public shape{
public:
circle(string s, bool bb, double d):shape(new string, new
bool),radius(new double){
}
protected:
double * radius;
};
Récemment, j'essayais de ramasser C++. Voici un exemple de code que j'ai écrit en apprenant la propriété de l'héritage. Des erreurs apparaissent sur "shape (new string, new bool)" dans le cercle de la classe enfant. Je ne suis pas sûr de ce qui est la bonne syntaxe pour le faire. De plus, j'ai remarqué que si on utilisait des pointeurs dans les classes, la forme de la liste initialize était utilisée pour allouer de la mémoire au lieu d'assigner des valeurs. Y a-t-il de meilleures expressions et syntaxes que je peux utiliser pour faire les deux? Merci les gars d'avance.Syntaxe correcte pour l'héritage en C++ avec la liste d'initialisation et l'allocation de mémoire?
Pourquoi utilisez-vous le nom ': (nouvelle chaîne)' 'au lieu de simplement le nom :(a) '? – Barmar
nom est un pointeur que j'ai créé. Pour la mémoire dynamique, ne devrais-je pas allouer de la mémoire en premier? –
Pourquoi avez-vous besoin d'être dynamique? Pourquoi ne pas avoir juste un 'string' en tant que membre au lieu de' string * '? – Barmar