我是C++中的新手。我正在學習C++ oops概念。 是否允許使用派生類(D)分配基類(B)指針的內存?使用派生類分配基類指針的內存
B *a = new D();
我的代碼:
#include <iostream>
using namespace std;
class B
{
public:
B()
{
cout<<"B constructor"<<endl;
}
~B()
{
cout<<"B Destroctur"<<endl;
}
};
class D : public B
{
public:
D()
{
cout<<"D constructor"<<endl;
}
~D()
{
cout<<"D Destroctur"<<endl;
}
};
int main()
{
B *a = new D();
delete a; // Is valid?
}
而且,它是有效的釋放基類指針的內存?
delete a;
http://stackoverflow.com/questions/461203/when-to-use-virtual-destructors – SingerOfTheFall
有作爲「基類指針的記憶」沒有這樣的事。 – immibis
這是一個開始學習基礎知識的好地方:http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list – user2079303