English 中文(简体)
多个继承钻石
原标题:Multiple inheritance diamond

该守则是:

   class Vehicle {
     public :
       Vehicle () { 
              cout << " Vehicle Constructor " << endl ;
                  }
       virtual ~ Vehicle () {
              cout << " Vehicle Destructor " << endl ;
                             }

       virtual void accelerate () {
              cout << " Vehicle Accelerating " << endl ;
                                   }   

       void setAcceleration ( double a ) {
              acceleration = a;
                                         }
       double getAcceleration () {
              return acceleration ;
                                  }
       protected :
              double acceleration ;
      };
      class Car : public Vehicle {
       public :

       Car () {
              cout << " Car Constructor " << endl ;
               }

       virtual ~ Car () {
              cout << " Car Destructor " << endl ;
                         }

       virtual void accelerate () {
             cout << " Car Accelerating " << endl ;
                                  }

       virtual void drive () {
             cout << " Car Driving " << endl ;
                             }

       };
      class Jet : public Vehicle {
      public :

       Jet () {
             cout << " Jet Constructor " << endl ;
               }

       virtual ~ Jet () {
              cout << " Jet Destructor " << endl ;
                        }

       virtual void fly () const {
             cout << " Jet flying " << endl ;
                       }

                };
       class JetCar : public Car , public Jet {
       public :

       JetCar () {
              cout << " JetCar Constructor " << endl ;
               }

       virtual ~ JetCar () {
              cout << " JetCar Destructor " << endl ;
                    }

       virtual void drive () {
              cout << " JetCar driving " << endl ;
                             }

       virtual void fly () {
              cout << " JetCar flying " << endl ;
                           }

       };
       void analyzeCarPerformance ( Car * testVehicle ) {
              testVehicle -> drive () ;
                 }

       void analyzeJetPerformance ( Jet * testVehicle ) {
                testVehicle -> fly () ;
                  }

     int main () {
       Car myCar ;

       Jet myJet ;

       JetCar myJetCar ;

       cout << endl << endl ;

       cout << " Car testing in progress " << endl ;

       analyzeCarPerformance (& myCar );

       analyzeCarPerformance (& myJetCar ) ;

       cout << " Jet testing in progress " << endl ;

       analyzeJetPerformance (& myJet );

       analyzeJetPerformance (& myJetCar ) ;

       cout << endl << endl ;

       return 0;
      }

在我称之为<条码>的主机中,编辑员给我<条码>。 Jatlew not JetCar.3/62/,我希望。 这里的问题是什么?

问题回答

在杰特,有:

   virtual void fly () const {
         cout << " Jet flying " << endl ;
                   }

在杰尔,

   virtual void fly () {
          cout << " JetCar flying " << endl ;
                       }

这些职能并不相同。 宣布职能相同,并应发挥作用。





相关问题
Undefined reference

I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...

C++ Equivalent of Tidy

Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...

Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

typedef ing STL wstring

Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

Window iconification status via Xlib

Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?

热门标签