classe non reconnue - C++ - Programmation
Marsh Posté le 02-08-2005 à 15:05:40
Au .hpp c'est quoi ca?
Tu peux montrer ton code et la ligne avec laquelle tu compile
Marsh Posté le 02-08-2005 à 15:06:47
(hpp par analogie avec cpp, c'est une autre extension usuelle pour les headers C++)
Du code !
Marsh Posté le 02-08-2005 à 15:11:05
theshockwave a écrit : (hpp par analogie avec cpp, c'est une autre extension usuelle pour les headers C++) |
Ok
Marsh Posté le 02-08-2005 à 15:13:55
... Et la définition de ta classe ? Et le reste du fichier ?
Marsh Posté le 02-08-2005 à 15:17:20
Code :
|
Marsh Posté le 02-08-2005 à 15:19:30
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"
Marsh Posté le 02-08-2005 à 15:20:43
et
EuropeanOption europeanOption(type, underlying, strike,
dividendYield, riskFreeRate,
residualTime, volatility);
Marsh Posté le 02-08-2005 à 15:34:23
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) : |
)
Marsh Posté le 02-08-2005 à 15:41:13
yep sorry!
Code :
|
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)
Marsh Posté le 02-08-2005 à 15:47:21
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
Marsh Posté le 02-08-2005 à 15:54:55
si 2 namespaces:
namespace QuantLib {
namespace Pricers {
class EuropeanOption
et je n'ai qu'un usising namespace QuantLib quand j'instancie
d'où
Marsh Posté le 02-08-2005 à 15:56:26
donc, tu dois faire :
Pricers::EuropeanOption europeanOption(...);
sinon, ca ne passera pas
Marsh Posté le 02-08-2005 à 16:02:44
Code :
|
et là il me cela maintenant:
unresolved external?
Marsh Posté le 02-08-2005 à 16:22:23
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.
Marsh Posté le 02-08-2005 à 16:47:31
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
Marsh Posté le 02-08-2005 à 17:21:21
slash33 a écrit : ou ne sont pas dans le namespace? |
elles ne compileraient pas alors.
Marsh Posté le 02-08-2005 à 17:36:49
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...
Marsh Posté le 02-08-2005 à 17:48:05
doc online, (très bien intégrée dans Visual Studio 2005, d'ailleurs) mais ce n'est pas vraiment le sujet ici
Marsh Posté le 02-08-2005 à 17:52:38
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...
Marsh Posté le 02-08-2005 à 17:58:49
Messieurs, il m'en reste une dernière
plus d'histoires de virtual=0
avez vous une idée?
Code :
|
et le constructeur est définit comme ceci
Code :
|
merci
Marsh Posté le 02-08-2005 à 18:03:18
Comprend pas ton prototype c'est bien
Code :
|
?
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?
Marsh Posté le 02-08-2005 à 18:11:39
oui mais europeanoption est défini avec les 7 paramètres + d'autres datas private mutables: alpha,....
Marsh Posté le 02-08-2005 à 18:12:35
// constructor
EuropeanOption(Option::Type type, double underlying, double strike, Spread dividendYield, Rate riskFreeRate, Time residualTime, double volatility);
Marsh Posté le 02-08-2005 à 18:22:49
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)
Marsh Posté le 02-08-2005 à 18:26:31
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 ?
Marsh Posté le 02-08-2005 à 18:29:43
Dans ce cas, il faut que tu donnes plus de code, j'imagine
Marsh Posté le 02-08-2005 à 18:30:45
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...
Marsh Posté le 02-08-2005 à 18:31:40
Je ne crois pas que la remarque de morgan541 soit la réponse à ta question mais plutôt à la mienne...
Marsh Posté le 02-08-2005 à 18:32:24
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.
Marsh Posté le 02-08-2005 à 19:07:23
l'erreur viendrait d'un lien entre un constructeur et une DLL?
Marsh Posté le 03-08-2005 à 09:03:54
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.
Marsh Posté le 03-08-2005 à 09:06:55
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...
Marsh Posté le 02-08-2005 à 15:03:59
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?
merci