J'essaie de réécrire un code que j'ai écrit précédemment. Le code utilise l'API de concert cplex;Problèmes avec les déclarations et les initialisations
#include <ilcplex/ilocplex.h>
using namespace std;
ILOSTLBEGIN
int main(){
IloEnv env;
IloModel model(env);
IloVarArray x(env);
IloCplex cplex(model);
return 0;
}
Ce code (bien qu'il ne fait rien) fonctionne ... Mais maintenant j'ai mis ma propre classe et je voudrais pouvoir utiliser ces fonctions aussi bien, mais je ne sais pas comment les initier. Donc, cette fois je les ai écrits dans une classe differnet appelée solveur.
//solver.h
#ifndef solver_h
#define solver_h
#include <ilcplex/ilocplex.h>
class solver{
public:
IloModel model;
IloNumVarArray x;
IloRangeArray con;
IloCplex cplex;
solver();
solver~();
};
#endif
Ensuite, le fichier cpp
//solver.cpp
#include <ilcplex/ilocplex.h>
#include <vector>
using namespace std;
#include "solver.h"
ILOSTLBEGIN
solver::solver(){
IloEnv env;
IloModel model(env);
IloVarArray x(env);
IloCplex cplex(model);
}
Si j'ajouter une fonction à cette classe par exemple une fonction qui appelle x.add (IloNumVar (env)); Dans le premier exemple ceci ajouterait une variable au x (array), mais quand je l'ai dans une classe différente j'attrape "tring pour implémenter la poignée vide" ...
Je sais que je fais tout droit dans le programme principal, et je l'obtiens aussi pour fonctionner si je n'ai pas les différentes classes de Cplex dans le h.file mais alors je peux seulement utiliser le même modèle une fois et je voudrais appeler le même modèle plusieurs fois.
Y a-t-il quelque chose qui cloche ici (en plus du manque de code, de destructeurs, etc ...) dans le h.file ou?
Ah merci! J'ai pensé que ma question était trop longue et désordonnée pour que quelqu'un la lise, mais clairement pas! –