Je veux denfine une classe basée sur la bibliothèque Eigen:Initialiser un objet de modèle dans une classe (C++)
fichier d'en-tête:
#include <Eigen>
using namespace Eigen;
class MatrixV{
public:
MatrixV(double mu, double omega, double delta, double size);
Eigen::MatrixXd getV();
private:
Eigen::MatrixXd V;
Eigen::JacobiSVD<Eigen::MatrixXd, Eigen::NoQRPreconditioner> svd(V, ComputeFullU | ComputeFullV);
};
cpp-file:
MatrixV::MatrixV(double mu, double omega, double delta, double size){
Eigen::MatrixXd V = MatrixXd::Random(3,3)
}
Eigen::MatrixXd MatrixV::getV(){
return V;
}
En compilant ce code, mon compilateur me donne les erreurs suivantes:
MatrixV.h:14:68: error: 'V' is not a type
Eigen::JacobiSVD<Eigen::MatrixXd, Eigen::NoQRPreconditioner> svd(V,ComputeFullU | ComputeFullV);
MatrixV.h:14:71: error: 'ComputeFullU' is not a type
Eigen::JacobiSVD<Eigen::MatrixXd, Eigen::NoQRPreconditioner> svd(V, ComputeFullU | ComputeFullV);
MatrixV.h:14:84: error: expected ',' or '...' before '|' token
Eigen::JacobiSVD<Eigen::MatrixXd, Eigen::NoQRPreconditioner> svd(V, ComputeFullU | ComputeFullV);
So the main problem seems to be the line
Eigen::JacobiSVD<Eigen::MatrixXd, Eigen::NoQRPreconditioner> svd(V, ComputeFullU | ComputeFullV);
mais je viens de copier-coller à partir de http://eigen.tuxfamily.org/dox/classEigen_1_1JacobiSVD.html et je ne comprends pas non plus pourquoi il s'attend à des noms de types dans les parenthèses() de toute façon. As tu des idées? Merci beaucoup!
Il est une déclaration de méthode, vous devez mettre les types. Ce n'est pas un appel de fonction avec des paramètres. – Bentoy13
Merci l'homme, qui a déjà beaucoup aidé. Savez-vous aussi, que faire avec le '|' jeton? – FuriousCpp
@FuriousCpp La ligne verticale est l'opérateur Bit OU. – iBug