标题:debug assertion failure的问题
只看楼主
lonely00
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-10-23
 问题点数:0 回复次数:2 
debug assertion failure的问题

#include<iostream>
#include<stdio.h >
#include<cstdlib >
using namespace std;

class matrix
{
int const line; //矩阵的行
int const column; //矩阵的列
long double **matrip;
public:
matrix(int,int);
~matrix(){for(int i=0;i<column;i++)delete []matrip[i]; delete []matrip;}
matrix E(int,int);
void inputm();
void outputm();
matrix operator+(matrix) const;
matrix& operator=(matrix&);
};

matrix::matrix(int l,int c):line(l),column(c)
{
matrip=new long double *[line];
for(int i=0;i<line;i++)
{
matrip[i]=new long double[column];
for(int j=0;j<column;j++)
matrip[i][j]=l;
}
}

void matrix::inputm()
{
cout<<"请按行输入"<<line<<"*"<<column<<"矩阵数据"<<endl;
for(int i=0;i<line;i++)
for(int j=0;j<column;j++)
cin>>matrip[i][j];
}

void matrix::outputm()
{
cout<<"按行输出的"<<line<<"*"<<column<<"矩阵数据"<<endl;
for(int i=0;i<line;i++)
{
for(int j=0;j<column;j++)
cout<<matrip[i][j]<<" ";
cout<<endl;
}
}

matrix matrix::operator +(matrix m) const
{
if(line!=m.line||column!=m.column)
{
cout<<"error,their sizes differ";
exit(1);
}
matrix tem(line,column);
for(int i=0;i<line;i++)
for(int j=0;j<column;j++)
tem.matrip[i][j]=matrip[i][j]+m.matrip[i][j];
return tem;
}
matrix& matrix::operator =(matrix& m)
{
if(line!=m.line||column!=m.column)
{
cout<<"error,their sizes differ";
exit(1);
}
for(int i=0;i<line;i++)
for(int j=0;j<column;j++)
matrip[i][j]=m.matrip[i][j];
return *this;
}
void main()
{
matrix a(2,2),b(2,2),c(2,2);
a.inputm();
a.outputm();
b.outputm();
c=a+b;
c.outputm();
}

代码没有语法错误,但是在执行到+函数的return语句时就出现debug assertion failure,请教大家是什么问题啊!!!!急急急!!!

[此贴子已经被作者于2007-10-23 14:21:35编辑过]

附件: 游客没有浏览附件的权限,请 登录注册
搜索更多相关主题的帖子: assertion failure int matrix debug 
2007-10-23 14:19
lileyear
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-10-18
得分:0 
你没写 复制构造函数
也就是 matrix(matrix& m)

operator + 返回的是tem,但返回时会复制给返回值,要用到这个函数

至于写什么,把你那个operator= 拷过去就行了
2007-10-23 15:55
lonely00
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-10-23
得分:0 
回复:(lileyear)你没写 复制构造函数也就是 matrix...
怎么调试回复First-chance exception in matri.exe: 0xC0000005: Access Violation.,有是什么原因呢?
2007-10-24 21:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-180078-1-1.html




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

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