| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 669 人关注过本帖
标题:new 的使用,能运行但不知为何会弹出Dug Assertion Failed!
取消只看楼主 加入收藏
A306452792
Rank: 1
等 级:新手上路
帖 子:31
专家分:7
注 册:2010-8-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
new 的使用,能运行但不知为何会弹出Dug Assertion Failed!
程序代码:
#include <iostream>
using namespace std;

class Book
{
private:
    int pages;
         double price;
    char *bookname, *authors,*publishing_house;
public:
    Book(){
    bookname=new char[50];
    authors=new char[50];   
    publishing_house=new char[50];   
    }
    ~Book(){
    delete[](bookname);(bookname)=NULL;
    delete[]authors;(authors)=NULL;
    delete[]publishing_house;(publishing_house)=NULL;


    }
    void getXxx();
    void setXxx(char *b,char *a,int pa,char*p, double pr);
};
void Book::setXxx(char *b,char *a,int pa,char*p, double pr){
bookname=b;
authors=a;
pages=pa;
publishing_house=p;
price=pr;
}

void Book::getXxx(){
    cout<<"书名:"<<bookname<<" 作者:"<<authors<<" 页数:"<<pages<<""<<" 出版社: "<<publishing_house<<" 价格:"<<price<<endl;
}

int main()
{
    cout<<"定义的两本书的信息:"<<endl;
  Book mybook;
  mybook.setXxx("《C++程序设计》","谭浩强编著",485,"清华大学出版社",36.00);
    mybook.getXxx();
    cout<<endl;
mybook.setXxx("《吹牛大王历险记》","拉斯伯等编著",149,"天津人民出版社",12.80);
    mybook.getXxx();

 
    return 0;
}
搜索更多相关主题的帖子: Failed 
2011-03-30 22:06
A306452792
Rank: 1
等 级:新手上路
帖 子:31
专家分:7
注 册:2010-8-18
收藏
得分:0 
我想到了,好像直接把那个析构函数放在void setXxx()函数之后就行了,因为构造函数刚分配地址,void setXxx()还没使用就用析构函数删除了内存,导致的错误吧.
2011-03-31 11:27
A306452792
Rank: 1
等 级:新手上路
帖 子:31
专家分:7
注 册:2010-8-18
收藏
得分:0 
的确,因为刚学C++,很多不会
2011-03-31 19:55
快速回复:new 的使用,能运行但不知为何会弹出Dug Assertion Failed!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017965 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved