déclarer un symbole dans B cache les symboles que tu as hérités et qui portent le même nom. Tu vas avoir besoin de publier ta fonction de A à nouveau.
Edit :
Code :
- class A {
- public:
- void bar(const char *buf, int size)
- {
- std::cout << "A::foo();" << std::endl;
- bar(buf[0]);
- }
- virtual void bar(char buf) = 0;
- };
- class B : public A {
- public:
- virtual void bar(char buf)
- {
- std::cout << "B::bar();" << std::endl;
- }
- using A::bar;
- };
- int main()
- {
- B b;
- b.bar("toto", 5);
- }
|
Je t'ai aussi passé A::bar comme prenant un const char*, parce que c'est pas top de passer une chaine constante littérale en char*
Message édité par theshockwave le 17-03-2014 à 12:39:03
---------------
last.fm