Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1982 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  classe non reconnue

 



 Mot :   Pseudo :  
 
 Page :   1  2  3  4
Page Précédente
Auteur Sujet :

classe non reconnue

n°1167925
morgan541
Posté le 02-08-2005 à 15:03:59  profilanswer
 

Bojour,
 
Lorque je crée mon objet toto, celui-ci n'est pas reconnue
alors que dans ce fichier je fais appel à au .hpp correspondant à la définition de la classe.
TOTOClass toto(p1, p2, p3, p4, p5, p6, p7);
 
Quelqu'un aurait-il une idée sur cette erreur?

Code :
  1. \\\\\ExcelBlackScholes.cpp(55) :
  2. error C2065: 'TOTOClass' : undeclared identifier
  3. error C2146: syntax error : missing ';' before identifier 'europeanOption'
  4. error C2065: 'toto' : undeclared identifier


 
 
merci

mood
Publicité
Posté le 02-08-2005 à 15:03:59  profilanswer
 

n°1167930
cesarr89
Posté le 02-08-2005 à 15:05:40  profilanswer
 

Au .hpp c'est quoi ca?
Tu peux montrer ton code et la ligne avec laquelle tu compile

n°1167935
theshockwa​ve
I work at a firm named Koslow
Posté le 02-08-2005 à 15:06:47  profilanswer
 

(hpp par analogie avec cpp, c'est une autre extension usuelle pour les headers C++)
 
Du code !

n°1167944
cesarr89
Posté le 02-08-2005 à 15:11:05  profilanswer
 

theshockwave a écrit :

(hpp par analogie avec cpp, c'est une autre extension usuelle pour les headers C++)
 


 
Ok

n°1167947
morgan541
Posté le 02-08-2005 à 15:13:06  profilanswer
 

Code :
  1. TOTOclass toto(p1, p2, p3, p4, p5, p6, p7);


 

n°1167948
theshockwa​ve
I work at a firm named Koslow
Posté le 02-08-2005 à 15:13:55  profilanswer
 

... Et la définition de ta classe ? Et le reste du fichier ? :o

n°1167953
morgan541
Posté le 02-08-2005 à 15:17:20  profilanswer
 

Code :
  1. class EuropeanOption : public SingleAssetOption {
  2.           public:
  3.             // constructor
  4.             EuropeanOption(Option::Type type, double underlying,
  5.                 double strike, Spread dividendYield, Rate riskFreeRate,
  6.                 Time residualTime, double volatility);
  7.             // accessors
  8.             double value() const;
  9.             double delta() const;
  10.             double gamma() const;
  11.             double theta() const;
  12.             double vega() const;
  13.             double rho() const;
  14.             double dividendRho() const;
  15.             Handle<SingleAssetOption> clone() const {
  16.                 return Handle<SingleAssetOption>(new EuropeanOption(*this)); }
  17.             // modifiers
  18.             void setVolatility(double newVolatility);
  19.             void setRiskFreeRate(Rate newRate);
  20.             void setDividendYield(Rate newDividendYield);
  21.             double beta() const;
  22.           private:
  23.             static const Math::CumulativeNormalDistribution f_;
  24.             double alpha() const;
  25.             double standardDeviation() const;
  26.             double D1() const;
  27.             double D2() const;
  28.             double NID1() const;
  29.             DiscountFactor dividendDiscount() const;
  30.             DiscountFactor riskFreeDiscount() const;
  31.             // declared as mutable to preserve
  32.             // the logical constness (does this word exist?) of value()
  33.             mutable double alpha_, beta_, standardDeviation_,
  34.                 D1_, D2_, NID1_;
  35.             mutable DiscountFactor dividendDiscount_, riskFreeDiscount_;
  36.         };

n°1167956
theshockwa​ve
I work at a firm named Koslow
Posté le 02-08-2005 à 15:19:30  profilanswer
 

J'ai envie de te répondre la même chose que ton compilateur :

error C2065: 'TOTOClass' : undeclared identifier


ou, en plus clair : "Je ne vois toujours pas de déclaration de TOTOclass"

n°1167957
morgan541
Posté le 02-08-2005 à 15:20:17  profilanswer
 

en fait TOTOClass=EuropeanOption

n°1167960
morgan541
Posté le 02-08-2005 à 15:20:43  profilanswer
 

et  
EuropeanOption europeanOption(type, underlying, strike,  
                                dividendYield, riskFreeRate,  
                                residualTime, volatility);

mood
Publicité
Posté le 02-08-2005 à 15:20:43  profilanswer
 

n°1167984
theshockwa​ve
I work at a firm named Koslow
Posté le 02-08-2005 à 15:34:23  profilanswer
 

question con : tu as bien fait un include du fichier où tu as la définition de ta classe avant son instanciation ?
 
(et à l'avenir, évite d'obfusquer ton code et tes erreurs, parce que maintenant, je commence à me demander ce que je dois remettre en ordre dans tes posts :

Citation :

\\\\\ExcelBlackScholes.cpp(55) :
error C2065: 'TOTOClass' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'europeanOption'
error C2065: 'toto' : undeclared identifier

)

n°1167994
morgan541
Posté le 02-08-2005 à 15:41:13  profilanswer
 

yep sorry!

Code :
  1. error C2065: 'EuropeanOption' : undeclared identifier
  2. error C2146: syntax error : missing ';' before identifier 'europeanOption'
  3. error C2065: 'europeanOption' : undeclared identifier
  4. Error executing cl.exe.


 
Le #include correspondant est bien au début #include "ql/quantlib.hpp"
 
ce quantlib étant un ensemble de #include vers d'autres hpp donc europeanoption.hpp (def de la classe)

n°1168003
theshockwa​ve
I work at a firm named Koslow
Posté le 02-08-2005 à 15:47:21  profilanswer
 

tu es sur que ta classe n'est pas dans un namespace ?
Vu l'erreur, c'est soit le fichier qui n'est pas réellement inclu, soit un problème de résolution de portée :/

n°1168024
morgan541
Posté le 02-08-2005 à 15:54:55  profilanswer
 

si 2 namespaces:
 
namespace QuantLib {
 
    namespace Pricers {
 
          class EuropeanOption
 
 
et je n'ai qu'un usising namespace QuantLib quand j'instancie
 
d'où

n°1168028
theshockwa​ve
I work at a firm named Koslow
Posté le 02-08-2005 à 15:56:26  profilanswer
 

donc, tu dois faire :
 
Pricers::EuropeanOption europeanOption(...);
 
sinon, ca ne passera pas :)

n°1168038
morgan541
Posté le 02-08-2005 à 16:02:44  profilanswer
 

Code :
  1. error LNK2001: unresolved external symbol "public: virtual double __thiscall QuantLib::Pricers::SingleAssetOption::dividendRho(void)const " (?dividendRho@SingleAssetOption@Pricers@QuantLib@@UBENXZ)
  2. ExcelBlackScholes.obj :
  3. error LNK2001: unresolved external symbol "public: virtual double __thiscall QuantLib::Pricers::SingleAssetOption::rho(void)const " (?rho@SingleAssetOption@Pricers@QuantLib@@UBENXZ)
  4. ExcelBlackScholes.obj :


 
et là il me cela maintenant:
unresolved external?

n°1168060
HelloWorld
Salut tout le monde!
Posté le 02-08-2005 à 16:22:23  profilanswer
 

Soit tu compiles / link pas le SingleAssetOption.cpp dans ton projet, soit les fonctions membres SingleAssetOption::dividendRho() et SingleAssetOption::rho() ne sont pas implémentées.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°1168061
slash33
Posté le 02-08-2005 à 16:23:06  profilanswer
 

ou ne sont pas dans le namespace?

n°1168090
morgan541
Posté le 02-08-2005 à 16:47:31  profilanswer
 

en fait dividend_rho et rho étaient défininies dans la classe fille European et n'avait pas été déclarées =0 dans la classe mere
donc c ok
 
merci
on apprend on apprend

n°1168127
HelloWorld
Salut tout le monde!
Posté le 02-08-2005 à 17:21:21  profilanswer
 

slash33 a écrit :

ou ne sont pas dans le namespace?


elles ne compileraient pas alors.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°1168147
slash33
Posté le 02-08-2005 à 17:36:49  profilanswer
 

Tu sais avec Visual j'en déja vu des choses étranges...
Non: je retire ce que j'ai dit, tu as raison.
 
Au fait j'ai commencé à me mettre au C# avec SharpDevelop + .NET SDK
Pour la doc tu t'y prends comment? Parce que récupérer les 3 CDs de la MSDN...


Message édité par slash33 le 02-08-2005 à 17:40:01
n°1168159
theshockwa​ve
I work at a firm named Koslow
Posté le 02-08-2005 à 17:48:05  profilanswer
 

doc online, (très bien intégrée dans Visual Studio 2005, d'ailleurs) mais ce n'est pas vraiment le sujet ici

n°1168162
slash33
Posté le 02-08-2005 à 17:52:38  profilanswer
 

Si je demande pour la doc c'est parce que mon poste de dév (at home quoi) n'est pas connecté à Internet. Alors la doc en ligne...

n°1168167
morgan541
Posté le 02-08-2005 à 17:58:49  profilanswer
 

Messieurs, il m'en reste une dernière
plus d'histoires de virtual=0
avez vous une idée?
 

Code :
  1. error LNK2001: unresolved external symbol "public: __thiscall QuantLib::Pricers::EuropeanOption::EuropeanOption(enum QuantLib::Option::Type,double,double,double,double,double,double)" (??0EuropeanOption@Pricers@QuantLib@@QAE@


 
et le constructeur est définit comme ceci

Code :
  1. EuropeanOption::EuropeanOption(Option::Type type, double underlying,
  2.             double strike, Spread dividendYield, Rate riskFreeRate,
  3.             Time residualTime, double volatility)
  4.   : SingleAssetOption(type, underlying, strike, dividendYield,
  5.                             riskFreeRate, residualTime, volatility),
  6.           alpha_(Null<double>()), beta_(Null<double>()),
  7.           standardDeviation_(Null<double>()), D1_(Null<double>()),
  8.           D2_(Null<double>()), NID1_(Null<double>()),
  9.           dividendDiscount_(Null<DiscountFactor>()),
  10.           riskFreeDiscount_(Null<DiscountFactor>()) {}


 
merci

n°1168170
slash33
Posté le 02-08-2005 à 18:03:18  profilanswer
 

Comprend pas ton prototype c'est bien

Code :
  1. EuropeanOption::EuropeanOption(Option::Type,
  2. double, double, Spread, Rate, Time, double)

?
 
Vu que dans ton source je ne vois pas de ; -> c'est bien le code d'implémentation du constructeur? Le code de déclaration du constructeur existe-t-il?


Message édité par slash33 le 02-08-2005 à 18:05:58
n°1168173
morgan541
Posté le 02-08-2005 à 18:11:39  profilanswer
 

oui mais europeanoption est défini avec les 7 paramètres + d'autres datas private mutables: alpha,....

n°1168174
morgan541
Posté le 02-08-2005 à 18:12:35  profilanswer
 

// constructor
EuropeanOption(Option::Type type, double underlying,     double strike, Spread dividendYield, Rate riskFreeRate,     Time residualTime, double volatility);

n°1168178
slash33
Posté le 02-08-2005 à 18:18:27  profilanswer
 

Non là je vois pas. Tu as essayé un rebuild all?

n°1168179
morgan541
Posté le 02-08-2005 à 18:19:22  profilanswer
 

Rebuild all fait
mais tjs l'erreur

n°1168180
slash33
Posté le 02-08-2005 à 18:22:49  profilanswer
 

QuantLib::Option::Type et Option::Type c'est la même chose?
Je cherche là mais je séche (à part ne pas inclure le .h ou le .cpp je vois vraiment pas)


Message édité par slash33 le 02-08-2005 à 18:23:20
n°1168181
theshockwa​ve
I work at a firm named Koslow
Posté le 02-08-2005 à 18:26:31  profilanswer
 

il y a forcément un problème ailleurs.
 
Vérifie que tes types Spread, Rate et Time sont bien des doubles, rends explicite leur namespace d'origine pour t'assurer que le mal ne vient pas de là
 
Tu n'as vraiment pas d'autre message d'erreur ?

n°1168182
morgan541
Posté le 02-08-2005 à 18:26:44  profilanswer
 

Oui c la meme chose

n°1168184
theshockwa​ve
I work at a firm named Koslow
Posté le 02-08-2005 à 18:29:43  profilanswer
 

Dans ce cas, il faut que tu donnes plus de code, j'imagine

n°1168185
morgan541
Posté le 02-08-2005 à 18:30:45  profilanswer
 

autre erreur mais je pense qu'elle décole de la 1ere
 
../../../bin/RisqueCom.dll : fatal error LNK1120: 1 unresolved externals
 
je vais vérifier pour spread...

n°1168186
slash33
Posté le 02-08-2005 à 18:31:40  profilanswer
 

Je ne crois pas que la remarque de morgan541 soit la réponse à ta question mais plutôt à la mienne...

n°1168187
morgan541
Posté le 02-08-2005 à 18:32:09  profilanswer
 

tout à fait slasjh ct pour toi

n°1168188
slash33
Posté le 02-08-2005 à 18:32:24  profilanswer
 

Ah c'est une DLL? Il y aurait pas un problème de stdcall, cdecl, dllexport, dllimport... ? Désolé je suis moyen concernant les DLL.


Message édité par slash33 le 02-08-2005 à 18:33:50
n°1168208
morgan541
Posté le 02-08-2005 à 19:07:23  profilanswer
 

l'erreur viendrait d'un lien entre un constructeur et une DLL?

n°1168466
slash33
Posté le 03-08-2005 à 09:03:54  profilanswer
 

La cible de ton projet c'est bien une DLL (RisqueCom.Dll pour être exact)?
Je vais trop pouvoir te répondre sur ce coup là, les DLL je pratique très peu.

n°1168470
morgan541
Posté le 03-08-2005 à 09:06:55  profilanswer
 

Ok!
 
sinon juste pour souffler un peu sur le sujet
 
Peut-on ajouter autant de projets que l'on veut à un workspace?et les faire dépendre les uns des autres...certainbs d'entre eux générant des .lib...

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  classe non reconnue

 

Sujets relatifs
prob acces a une methode d'une classeChanger une classe d'un objet input [Résolu]
SWT/AWT et la classe ListComment utiliser cette classe PHP pour lire du Excel ?
classe et interfaceclasse CSS et id de balise
Probleme attacheMovie & Classe externeFaire des membres d'une classe en "lecture seule"
[C#] Classe de logClasse non reconnue
Plus de sujets relatifs à : classe non reconnue


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR