Ad

Friday, August 03, 2007

Problems Related to Class and Inheritance

To make our ongoing discussion on Inheritance a little more interesting, I have listed some problems or questions here. They all are related to Classes in general and Inheritance in particular.

Problem #1: This program contains some error(s), can you spot which line(s) contains error(s)?


  1     // Problems No.1
  2     // Related to Inheritance
  3     #include<iostream.h>
  4
  5     // base class
  6     class base
  7     {
  8       int a;
  9
  10    public:
  11      void seta(int num){a=num;}
  12    };
  13
  14    // derived class
  15    class derived:public base
  16    {
  17      int b;
  18
  19    public:
  20      void setb(int num){b=num;}
  21
  22      void show()
  23      {
  24        cout<<a<<"\n"<<b;
  25      }
  26    };
  27
  28    // main
  29    void main()
  30    {
  31      base b;
  32      derived d;
  33
  34      b.seta(10);
  35      d.setb(100);
  36
  37      d.show();
  38    }

Problem #2: This program contains some error(s), can you spot which line(s) contains error(s)?


  1     // Problems No.2
  2     // Related to Inheritance
  3     #include<iostream.h>
  4
  5     // base class
  6     class base
  7     {
  8     protected:
  9       int a;
  10
  11    public:
  12      void seta(int num){a=num;}
  13    };
  14
  15    // derived class
  16    class derived:protected base
  17    {
  18    protected:
  19      int b;
  20
  21    public:
  22      void setb(int num){b=num;}
  23      void show()
  24      {
  25        cout<<a<<"\n"<<b;
  26      }
  27    };
  28
  29    // main
  30    void main()
  31    {
  32      base b;
  33      derived d;
  34
  35      b.seta(10);
  36      d.setb(20);
  37
  38      d.show();
  39
  40      b.a=5;
  41      d.b=10;
  42
  43      d.show();
  44    }

Problem #3: This program contains some error(s), can you spot which line(s) contains error(s)?


  1     // Problems No.2
  2     // Related to Inheritance
  3     #include<iostream.h>
  4
  5     // base class (1)
  6     class base1
  7     {
  8     protected:
  9       int a;
  10    };
  11
  12    // base class (2) derived from
  13    // base1
  14    class base2:private base1
  15    {
  16    protected:
  17      int b;
  18    };
  19
  20    // derived from base2
  21    class derived:public base2
  22    {
  23    public:
  24      void set(int num1,int num2)
  25      {
  26        a=num1;b=num2;
  27      }
  28
  29      void show()
  30      {
  31        cout<<a<<"\n"<<b;
  32      }
  33    };
  34
  35    void main()
  36    {
  37      derived d;
  38      d.set(10,20);
  39
  40      d.show();
  41    }

ANSWERS:

  1. Line No. 24

  2. Line No. 40 and 41

  3. Line No. 26 and 31

Related Articles:

No comments:

Post a Comment

You are free to comment anything, although you can comment as 'Anonymous' it is strongly recommended that you supply your name. Thank You.

Please don't use abusive language.