Advertisement
Guest User

Untitled

a guest
Aug 15th, 2019
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.76 KB | None | 0 0
  1. class A
  2. {
  3. public:
  4.     A() = default;
  5.     virtual ~A() = default;
  6.    
  7.     virtual void Foo (float x, float y) = 0;
  8.    
  9.     void Foo()
  10.     {
  11.         Foo(0, 0);
  12.     };
  13.    
  14.     void Foo(Point pos)
  15.     {
  16.         Foo(pos.x, pos.y);
  17.     };
  18.    
  19.     int Bar()
  20.     {
  21.         return 42;     
  22.     };
  23. };
  24.  
  25.  
  26. class B : public A
  27. {
  28. public:
  29.     B() = default;
  30.     virtual ~B() = default;
  31.    
  32.     void Foo (float x, float y) override
  33.     {
  34.         cout << "Call B::Foo(" << x << "," << y <<")" << endl;
  35.     };
  36. };
  37.  
  38.  
  39. int main()
  40. {
  41.     B obj;
  42.    
  43.     obj.Foo(10, 10);    //виртуальный метод работает нормально
  44.     obj.Bar();          //и просто унаследованный Bar работает нормально
  45.     obj.Foo();          //компилятор говорит, что такого метода у класса B нет
  46.    
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement