程序调试不通 C++二维数组类
#include <iostream.h>
#include <stdlib.h>
class Array
{
public:
Array(int i,int j);
~Array(){delete[]p;}
int& Access(int i,int j);
private:
int isize,jsize;
int *p;
}
Array::Array(int i,int j)
{
p=new int[i*j];
if(!p){
cout < < "Allocation error\n ";
exit(1);
}
isize=i;
jsize=j;
}
int&Array::Access(int i,int j)
{
if(i <0||i> =isize||j <0||j> =jsize){
cout < < "Bounds error!!\n ";
exit(1);
}
return p[i*jsize+j];
}
void main()
{
int width=5,length=6;
Array a(width,length);
for(int i=0;i <width;i++)
for(int j=0;j <length;j++)
a.Access(i,j)=i+j;
for(int i=0;i <width;i++){
for(int j=0;j <length;j++)
cout < <a.Access(i,j) < < ' ';
cout < <endl;
}
}
出错提示:
--------------------Configuration: C++34 - Win32 Debug--------------------
Compiling...
C++34.cpp
E:\C语言上机调试\C++34.cpp(14) : error C2533: 'Array::Array ' : constructors not allowed a return type
E:\C语言上机调试\C++34.cpp(34) : error C2264: 'Array::Array ' : error in function definition or declaration; function not called
E:\C语言上机调试\C++34.cpp(39) : error C2374: 'i ' : redefinition; multiple initialization
E:\C语言上机调试\C++34.cpp(35) : see declaration of 'i '
Error executing cl.exe.
C++34.obj - 3 error(s), 0 warning(s)
请大家帮忙!
[解决办法]
类定义后加分号
[解决办法]
#include "stdafx.h "
#include <iostream.h>
#include <stdlib.h>
class Array
{
public:
Array(int i,int j);
~Array(){delete[]p;}
int& Access(int i,int j);
private:
int isize,jsize;
int *p;
};
Array::Array(int i,int j)
{
p=new int[i*j];
if(!p){
cout < < "Allocation error\n ";
exit(1);
}
isize=i;
jsize=j;
}
int&Array::Access(int i,int j)
{
if(i <0||i> =isize||j <0||j> =jsize){
cout < < "Bounds error!!\n ";
exit(1);
}
return p[i*jsize+j];
}
void main()
{
int width=5,length=6;
int i, j;
Array a(width,length);
for( i=0;i <width;i++)
for( j=0;j <length;j++)
a.Access(i,j)=i+j;
for( i=0;i <width;i++){
for( j=0;j <length;j++)
cout < <a.Access(i,j) < < ' ';
cout < <endl;
}
}