读书人

菜鸟求指教

发布时间: 2013-01-08 14:02:13 作者: rapoo

初学者求指教
#include <iostream>
using namespace std;
  class A
  {public:
    A(){cout<<"A::A() called.\n";}
    virtual ~A(){cout<<"A::~A() called.\n";}
  };
  class B:public A
  { public:
    B(int i)
{ cout<<"B::B() called.\n";
    buf=new char[i];
   }
   virtual ~B()
{ delete []buf;
   cout<<"B::~B() called.\n";
   }
  private:
    char *buf;
  };
  void fun(A *a)
{ cout<<"May you succeed!"
    delete a;
  }
  int main()
{ A *a=new B(15);??这个是什么意思呢?
    fun(a);
return 0;
}


[解决办法]
用基类指针指向派生类对象,这是可以的,也是经常出现的。
[解决办法]
创建一个B的实例,然后用一个A类型的指针指向这个实例,由于B是A的子类,所以这样完全合理,但是要记住这个指针指向的实际是一个B类的实例。

读书人网 >C++

热点推荐