`
阿尔萨斯
  • 浏览: 4151467 次
社区版块
存档分类
最新评论

基类指针指向子类对象数组的问题

 
阅读更多
classa
[
a〔〕;
virtual`a〔〕;
]

classb;publica
[
intab;
b〔〕;
virtual`b〔〕;
]

现有;
a*pA=newb[10];

...

delete[]pA;

书上说,delete的时候只会调用a的析构函数,并且传给vec-delete的对象大小也是sizeof[pA]的大小,因此,书上建议不要使用基类 指针指向子类数组。但是我实验的结果是,a和b的析构函数均调用了,因为看不懂汇编,因此vec-delete没有跟到。
请高手做答。


-------------------------------------------------------------

class Base
{
public:
Base()
{
cout
<<"Base()"<<endl;
}
virtual ~Base()
{
cout
<<"~Base()"<<endl;
}
};
class Child:public Base
{
public:
Child()
{
cout
<<"Child()"<<endl;
}
virtual ~Child()
{
cout
<<"~Child()"<<endl;
}
};
int main(int argc, char* argv[])
{
Child x;
return 0;
}

分享到:
评论

相关推荐

    浅谈C++ 基类指针和子类指针的相互赋值

    下面小编就为大家带来一篇浅谈C++ 基类指针和子类指针的相互赋值。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    父类引用指向子类对象

    父类引用指向子类对象

    C++ 基类指针和子类指针相互赋值的实现方法

    下面小编就为大家带来一篇C++ 基类指针和子类指针相互赋值的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    父类引用指向子类对象[归纳].pdf

    父类引用指向子类对象[归纳].pdf

    详解c++中的类型识别

     当基类指针指向子类对象 或者基类引用成为子类对象的别名 时,就需要使用类型识别; Base *p = new Derived(); Base &r = *p 对于上面的语句,我们可以这样认识,指针p是Base类型,但是P 又指向了一个新的Derived...

    java 子类对象赋值给父类对象的使用

    java 子类对象赋值给父类对象的使用,包括代码及详解,个人笔记

    c++思维导图/很全,附带考点

    虚析构:将可能被继承的父类的析构函数设置为虚函数,可以保证当我们new一个子类,然后使用基类指针指向该子类对象,释放基类指针时可以释放掉子类的空间,防止内存泄漏。如果基类的析构函数不是虚函数,在特定情况...

    8.java子类对象的创建.zip

    8.java子类对象的创建.zip8.java子类对象的创建.zip8.java子类对象的创建.zip8.java子类对象的创建.zip8.java子类对象的创建.zip8.java子类对象的创建.zip8.java子类对象的创建.zip8.java子类对象的创建.zip8.java...

    基类子类虚函数的调用顺序问题

    在虚函数的基类与子类构造函数中调用虚函数。当生成子类对象时,函数的调用顺序是怎样的

    【Java基础】怎么理解父类引用能指向子类对象?

    因为子类中有一个隐藏的引用super会指向父类实例,所以在实例化子类之前会先实例化一个父类,也就是说会先执行父类的构造方法,由于s中包含了父类的实例,所以s可以调用父类的方法。 下面我们来看一下代码:

    面向对象考试 Person类,派生Student

    定义一个Person类、一个Student子类和一个Professor子类,要求: ...3)在基类中定义虚函数print(),通过基类指针分别调用person类、Student类、Professor类对象中的print(),使其输出各个对象的属性。

    基对象引用子类实例(C# 形象说明:父母可以代表孩子做很多事情)

    此例子介绍了c#中,父类可以代替子类做很多事情。 此例适合初学者。

    js将类数组对象转换成数组对象

    javascript与dom有许多瑕疵,如著名的类数组对象Arguments,其他诸如HTMLCollection,NodeList如果它们都是数组的子类,那多省时啊。

    moviepy音视频剪辑-视频基类VideoClip子类

    视频基类VideoClip子类DataVideoClip、UpdatedVideoClip、ImageClip、ColorClip、TextClip及使用案例.rar

    ChildClass.java

    父类引用指向子类对象时,没法调用子类特有的方法; 父类引用指向子类对象: java中子类强转父类,实际上依然是子类; 该引用只能调用父类中定义的方法和变量; 如果子类中重写了父类中的一个方法,那么在...

    C++ 虚函数的详解及简单实例

    虚函数是在基类定义,然后子类重写这个函数后,基类的指针指向子类的对象,可以调用这个函数,这个函数同时保留这子类重写的功能。 纯虚函数是可以不用在基类定义,只需要声明就可以了,然后因为是纯虚函数,是不能...

    C++派生类与基类的转换规则

    基类与派生类对象之间有赋值兼容关系,由于派生类中包含从基类继承的成员,因此可以将派生类的值赋给基类对象,在用到基类对象的时候可以用其子类对象代替。 具体表现在以下几个方面: 派生类对象可以向基类对象赋值...

Global site tag (gtag.js) - Google Analytics