Disons que je souhaite que mes utilisateurs utilisent une seule classe, par exemple SpecialData. Maintenant, cette classe de données aurait de nombreuses méthodes, et selon le type de données, les méthodes font des choses différentes, en interne, mais retournent des résultats similaires à l'extérieur. Par conséquent, mon souhait d'avoir une classe "publique" et d'autres "privées", des classes enfants qui changeraient le comportement des méthodes, etc ...Créer une instance à partir d'une méthode statique
Il serait étonnamment plus simple pour certains types de données qui doivent être construits de faire quelque chose comme ceci:
SpecialData& sm = SpecialData::new_supermatrix();
et new_supermatrix() retournera une instance SuperMatrix, qui hérite de la plupart des comportements de SpecialData.
mon en-tête:
static SpecialData& new_supermatrix();
mon cpp:
SpecialData& SpecialData::new_supermatrix()(){
return SuperMatrix(MATRIX_DEFAULT_MAGNITUDE,1000,1239,FLOAT32,etc...);
}
Le problème est, je reçois cette erreur, ce qui est probablement logique en raison des circonstances:
initialisation invalide de référence non-const du type 'SpecialData &' à partir d'un temporaire de type 'SpecialData'
Alors, des idées?
Vous devez apprendre comment fonctionne une pile. –
en effet, merci à tous pour les réponses. Je pense que je vais rester avec un espace de noms d'usine. – Manux