C++由于指针对象释放,造成Std::__non_rtti_Object例外发生
2014-02-23 11:09
302 查看
在实际编程中,我们经常会遇到下面的情景:
class A
{
A();
virtual ~A();
}
class B : public A
{
B();
virtual ~B();
}
void main()
{
B* pB = new B();
B* ppB = pB;
delete pB;
pB = NULL;
A* pA = dynamic_cast<A*>(ppB ); //此时就会造成 造成Std::__non_rtti_Object例外发生。
}
当然实际编程的语句比这个复杂的多,我只是总结一下。
class A
{
A();
virtual ~A();
}
class B : public A
{
B();
virtual ~B();
}
void main()
{
B* pB = new B();
B* ppB = pB;
delete pB;
pB = NULL;
A* pA = dynamic_cast<A*>(ppB ); //此时就会造成 造成Std::__non_rtti_Object例外发生。
}
当然实际编程的语句比这个复杂的多,我只是总结一下。
相关文章推荐
- 从零开始学C++之虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图
- [C/C++][经典探讨]类继承中,通过基类指针delete释放,是否会造成内存泄漏
- C++ 对象数组释放造成内存泄漏
- 从零开始学C++之虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图 .
- 从零开始学C++之虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图
- 虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图
- [C/C++][经典探讨]类继承中,通过基类指针delete释放,是否会造成内存泄漏
- c++中由于delete造成的悬垂指针
- 从零开始学C++之虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图
- [C/C++][经典探讨]类继承中,通过基类指针delete释放,是否会造成内存泄漏
- C++基类指针指向的派生类对象内存的释放
- c++中使用基类指针Vector 存放子类对象(0xcccccccc 处未处理的异常: 0xC0000005: 读取位置 0xcccccccc 时发生访问冲突 )
- 基类指针释放子类对象造成内存泄露
- 关于类的指针对象和普通对象由于使用错误造成莫名报错
- [C/C++][经典探讨]类继承中,通过基类指针delete释放,是否会造成内存泄漏 http://blog.csdn.net/code_godfather/article/details/66480
- C++:对象数组、对象动态申请和释放、类的定义和实现分开、this指针、常成员函数、时钟
- [C/C++][经典探讨]类继承中,通过基类指针delete释放,是否会造成内存泄漏
- [C/C++][经典探讨]类继承中,通过基类指针delete释放,是否会造成内存泄漏
- 从零开始学C++之类与对象:类声明、类作用域、前向声明、this指针、嵌套类、PIMPL 技法 等
- C++动态分配内存可以用不同的指针来释放