大家帮忙看看c++中派生类发生浅拷贝,但是在析构时候怎么没有内存错误!求解!
2011-10-25 09:36
721 查看
#include <iostream> #include <cstring> using namespace std; class Animal { public: Animal(const char *m_name = NULL, int m_age = 1) :age(m_age), name(NULL) { if (NULL == m_name) { name = new char[1]; *name = '\0'; return; } name = new char[strlen(m_name) + 1]; strcpy(name, m_name); cout << "Animal constructure!" << endl; } Animal(Animal &temp) { cout << "Animal copyconstructure!" << endl; if (NULL == temp.name) { name = new char[1]; *name = '\0'; return; } name = new char[strlen(temp.name) + 1]; strcpy(name, temp.name); age = temp.age; } ~Animal() { delete [] name; cout << "Animal unconstructure!" << endl; } void show_info() { cout << "Animal age:" << age << endl; cout << "Animal name:" << name << endl; } private: char *name; int age; }; class Dog:public Animal { public: Dog(const char *p_name, int p_age, const char *m_name, int m_age = 1) :Animal(p_name, p_age), age(m_age), name(NULL) { if (NULL == m_name) { name == new char[1]; *name = '\0'; return; } name = new char[strlen(m_name) + 1]; strcpy(name, m_name); cout << "Dog constructure!" << endl; } ~Dog() { delete [] name; cout << "Dog unconstructure!" << endl; } private: int age; char *name; }; int main(void) { Dog an("parent", 30, "child", 15); Dog bn(an); an.show_info(); bn.show_info(); return 0; }
程序在用Dog类的对象an给bn初始化的时候,调用了Dog类的默认拷贝构造函数,但是在析构时候没有内存错误!请那位高人帮忙看看!在此先谢谢了!
相关文章推荐
- springmvc+mybatis+maven项目集成的时候遇到一个问题,项目搭起来以后,http请求怎么都进不到controller中,页面直接返回404错误,控制台没有报任何错误,请大神帮我看看
- springmvc+mybatis+maven项目集成的时候遇到一个问题,项目搭起来以后,http请求怎么都进不到controller中,页面直接返回404错误,控制台没有报任何错误,请大神帮我看看
- 在java中使用内部类进行图片压缩的时候,怎么老是报内存错误,请大侠帮忙
- BLOG的下面部分内容怎么去掉?没有找到相关的设置!大家帮忙看看!
- c++一个析构的时候的释放内存错误
- 已成功与服务器建立连接 但是在登录过程中发生错误。 provider 共享内存提供程序 error 0 管道的另一端上无任何进程。
- 关于链表的,有一些错误老是解决不了,大家帮忙看看
- 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)
- 已成功与服务器建立连接 但是在登录过程中发生错误。 provider 共享内存提供程序 error 0 管道的另一端上无任何进程。
- 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)
- 大家来帮忙看看啊,为什么老是显示LINK : 没有找到 C:/Documents and Settings/Administrator/桌面/端口扫描/Debug/端口扫描.exe 或上一个增量链接没有生成它;正在执行完全链接
- 初学OpenCV3,运行编程入门上读取并播放视频的原版程序,编译通过但是没有任何输出,已按网上博主各种方法试,还是没有结果,大家看怎么解决?
- 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)
- 已成功与服务器建立连接 但是在登录过程中发生错误。 provider 共享内存提供程序 error 0 管道的另一端上无任何进程。
- ofbiz中遇到修改表单的时候出现服务调用错误提示,请大家帮忙看一下。
- JQUERY HighCharts 内存增长太快 大家看看怎么回事
- 退出程序时发生错误,大家来看看如何解决
- 大家帮忙看看如果面对这个升级文档该怎么处理,或者怎样才能处理得快一些(问在tianvcms改版前)
- 高手大家帮忙啊!看看这个值怎么取出来判断?
- 已成功与服务器建立连接 但是在登录过程中发生错误。 provider 共享内存提供程序 error 0 管道的另一端上无任何进程。