J'ai une classe dans laquelle j'ai besoin d'une fonction que je peux définir par objet. Je souhaite pouvoir définir la fonction spécifique de chaque objet en définissant un vecteur desdits objets. Ces vecteurs de mon objet vont constituer une partie d'une bibliothèque. Voici un exemple réussi de ce que je suis en train de faire:Définition d'un membre lors de la construction d'un objet
#include <iostream>
#include <vector>
class FunctionEater {
public:
virtual double func() {}
FunctionEater(double (*Func)) {
func = Func; // Not sure of the correct syntax here
}
};
std::vector<FunctionEater> gorgers {
{
double() { // Not sure of the syntax here, or if there is even syntax to do this
double result = 0.794 * 739.775;
return result;
}
},
{
double() {
double temp1 = 0.794 * 739.775;
double result = temp1 + 0.62;
return result;
}
}
}
int main()
{
double snackCrumbs = gorgers[0].func();
double gorgePoop = gorgers[1].func();
std::cout << snackCrumbs << std::endl << gorgePoop << std::endl;
}
Ainsi, les deux choses que j'ai du mal à comprendre, ou trouver beaucoup de documentation sur, sont les suivants:
- Comment pour définir la fonction tout en définissant les éléments de Avaleurs []
- Comment accepter la fonction que je l'ai passé au constructeur (* Func), et stocker comme deux fonc virtuel()
Je préférerais pouvoir définir la fonction dans la définition de l'objet. J'ai passé pas mal de temps à travailler sur la meilleure façon d'écrire mon vecteur d'objets, et la façon la plus facile de travailler visuellement dans cette situation semble être de définir chaque aspect de chaque objet dans un même bloc, tout en définissant le Je les reconnais, je ne sais pas si (* Func) est correct en utilisant une fonction virtuelle, mais c'est une adaptation de ma première tentative en utilisant des pointeurs de fonction. Je suis également heureux d'accepter d'autres suggestions qui pourraient fonctionner mieux que la méthode que j'essaie d'utiliser.
Merci d'avance pour toute assistance que vous pouvez offrir, et je suis heureux de modifier ou mettre à jour ma question si nécessaire.
Pete
'std :: fonction'? Vérifiez les échantillons ici: http://en.cppreference.com/w/cpp/utility/functional/function –
De votre échantillon, vous n'avez pas besoin de fonction, juste double variable constante. – Jarod42
@ Jarod42 où ai-je juste besoin d'une variable double const? –