注册 登录
编程论坛 C++教室

矩阵类构造函数无法通过编译

pengshenhu 发布于 2012-05-19 15:39, 382 次点击
这是我写的一个用于矩阵运算的矩阵类,在构造函数想把实参分别赋值给一个二维数组,但不知道什么原因无法编译通过
这是我的代码:
#include <iostream.h>
class Matrix
{
public:
    Matrix(int=0,int=0,int=0,int=0,int=0,int=0);//构造函数
    void setarray();//设置数组元素
private:
    int array[2][3];
}

Matrix::Matrix(int a11,int a12,int a13,int a21,int a22,int a23)
{
    array[0][0]=a11;    array[0][1]=a12;    array[0][2]=a13;
    array[1][0]=a21;    array[1][1]=a22;    array[1][2]=a23;
}

void Matrix::setarray()
{
    for(int i=0;i<2;i++)
    {
        for(int j=0;j<3;j++)
        {
            cout<<"a"<<(i+1)<<(j+1)<<"=";
            cin>>array[i][j];
        }
    }
    return;
}

在vc 6.0上的编译错误是:
error C2533: 'Matrix::Matrix' : constructors not allowed a return type

错误提示不能有返回值,但是我的构造函数并没有返回值,希望有人指点下
2 回复
#2
荡气回肠2012-05-19 17:39
#include <iostream.h>
class Matrix
{
public:
    Matrix(int=0,int=0,int=0,int=0,int=0,int=0);//构造函数
    void setarray();//设置数组元素
private:
    int array[2][3];
}; //分号掉啦

Matrix::Matrix(int a11,int a12,int a13,int a21,int a22,int a23)
{
    array[0][0]=a11;    array[0][1]=a12;    array[0][2]=a13;
    array[1][0]=a21;    array[1][1]=a22;    array[1][2]=a23;
}

void Matrix::setarray()
{
    for(int i=0;i<2;i++)
    {
        for(int j=0;j<3;j++)
        {
            cout<<"a"<<(i+1)<<(j+1)<<"=";
            cin>>array[i][j];
        }
    }
    return;
}

#3
pengshenhu2012-05-20 12:06
噢噢,原来是这样,那时就是没找出来问题
1