Bonjour.
J'ai eu un bug dans mon code.
J'ai ramené le problème à cette version simplifiée.
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 class A { public: void foo(const bool v); public: virtual void foo(void)=0; }; class B : public A { public: void bar(); public: virtual void foo(void) final ; }; void B::bar(){ foo(true); }
Je ne comprends pas pourquoi ça ne va pas chercher A::foo(const bool)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 test.cpp: In member function void B::bar(): test.cpp:12:12: error: no matching function for call to B::foo(bool) 12 | foo(true); | ^ test.cpp:8:26: note: candidate: virtual void B::foo() 8 | public: virtual void foo(void) final ; | ^~~
Est-ce une erreur d'écriture ou bien est-ce interdit, et auquel cas, pourquoi ?
a noter que
fonctionne mais je ne pige pas pourquoi je suis obligé de préciser A::
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void B::bar(){ A::foo(true); }
Partager