下列程序的执行结果为【 】。 #include <iostream. h> class Point { public: Point(double i, double j) { x=i;

admin2010-06-06  25

问题 下列程序的执行结果为【 】。
      #include <iostream. h>
      class Point
      {
      public:
            Point(double i, double j) { x=i; y=j;}
            double Area() const { return 0.0;}
      private:
           double x, y;
      };
      class Rectangle: public Point
      {
      public:
           Rectangle(double i, double j, double k, double 1)
           double Area() const {return w * h;}
      private:
           double w, h;
      };
      Rectangle: :Rectangle(double i, double j, double k. double 1): Point(i,j).
      {
           w=k, h=1
      }
      void fun(Point &s)
      {
           cout<<s. Area()<<end1;
      }
      void main( )
      {
           Rectangle rec(3.0, 5.2, 15.0. 25.0);
           fun(rec)
      }

选项

答案0

解析 注意本题不同于基类的指针指向派生类对象。Fun函数的形参是Point基类的引用。在可以用基类对象的地方,均可以用派生类替代,完成基类的行为。反之,在使用派生类对象的地方却不能用基类对象代替,这是因为派生类中的某些行为在基类对象中是不存在的。本题调用的是Point类对象的面积函数,其值永远为0。
转载请注明原文地址:https://kaotiyun.com/show/8yjp777K
0

最新回复(0)