Bonjour, j'ai un petit problème d'utilisation de templates de façon dynamique.
Voilà, en gros j'ai deux classes:
Je veux pouvoir instancier un objet de la classe CSVC de cette façon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 template<class ResponsePolicy> class SVM { ... ... }; template<class ResponsePolicy> class CSVC : public SVM<ResponsePolicy> { ... ... };
Mais, mon compilateur n'a pas l'air d'apprécier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SVM<Response>* svm1 = new CSVC<Response>();
Bref, je suppose que je n'ai pas le droit de faire ceci, mais alors, comment puis-je utiliser un objet de la classe CSVC à partir de sa base SVM (en fait je veux faire comme s'il n'y avait pas de paramètre template, faire abstraction de la partie CSVC) ?src/classifieurs/svms/TESTS/TestCSVC.cpp: In member function 'void TestCSVC::testEntrainer()':
src/classifieurs/svms/TESTS/TestCSVC.cpp:14: error: expected type-specifier before 'CSVC'
src/classifieurs/svms/TESTS/TestCSVC.cpp:14: error: cannot convert 'int*' to 'SVM<Response>*' in initialization
src/classifieurs/svms/TESTS/TestCSVC.cpp:14: error: expected ',' or ';' before 'CSVC'
src/classifieurs/svms/TESTS/TestCSVC.cpp:31: warning: possible problem detected in invocation of delete operator:
src/classifieurs/svms/TESTS/TestCSVC.cpp:14: warning: 'svm1' has incomplete type
Merci.
Bouba
Partager