Bonjour,
Est-il possible de créé une référence d'une classe virtuelle pure ?
Par exemple :
merciCode:
1
2
3
4
5
6
7
8 class A{ virtual void func1()=0; }; class B{ void funct2(A &); };
Version imprimable
Bonjour,
Est-il possible de créé une référence d'une classe virtuelle pure ?
Par exemple :
merciCode:
1
2
3
4
5
6
7
8 class A{ virtual void func1()=0; }; class B{ void funct2(A &); };
Bonjour
As-tu testé ?
Oui j'ai testé
Voila le code :
Et voilà ce que me renvoi le compilateur:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #include <iostream> using namespace std; class A{ public : virtual void func1()=0; }; class A1: public A{ public : virtual void func1(){ cout << "A1" << endl; } }; class B{ public: void func2(A & ref){ A.func1(); } }; int main(int argc, char** argv) { A1 bob1; B bob2; bob2.func2(A1); return 0; }
g++ -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/src/main.o.d -o build/Debug/GNU-Linux-x86/src/main.o src/main.cpp
src/main.cpp: In member function ‘void B::funct2(A&)’:
src/main.cpp:20:10: erreur: expected unqualified-id before ‘.’ token
src/main.cpp: In function ‘int main(int, char**)’:
src/main.cpp:29:19: erreur: expected primary-expression before ‘)’ token
Salut,
Et... en transmettant le paramètre (ref) recu plutôt qu'en essayant d'utiliser le type (A), qu'est ce que ca donne :question:
Désoler koala01, je n'ai pas compris ta réponse, peux-tu reformuler, merci.
Ce que koala veut t'expliquer c'est que c'est un problème de syntaxe basique:
A est le nom du type, mais pour appeler une fonction c'est le nom de la référence (ref, donc) qu'iol faut utiliser.
Code:
1
2 A.func(); // noooon! --> ref.func(); // ahh, much better!(c)
Ahhhh !!
merci !