2017杭电C++考试最后一题代码(自做,非标准答案)

CNM,C++

辣鸡语言,毁我青春,拉我绩点

本题可以用2种方法new二维数组
然而我考试的时候完全写错了
刚考完的时候因为时间不够没来得及写完代码感到超级懊恼
第一感觉是这题上课讲过类似的
如果上课讲过new二维数组的话,基本就没难度了,就是写起来比较麻烦而已
我忘了老师有没有讲过怎么new二维数组,印象里好像没有
不过我这种上课不听的学渣的印象也不准就是了……
后来想想,大佬们不仅厉害在会写难的代码,他们写简单的代码也比一般人要快啊
时间不够,就是能力不足
>技不如人,甘拜下风
代码是我自己写的,如果与标准答案有出入,或者出现了各种奇怪的BUG,本人概不负责
*代码可直接拷贝运行

#include
#include

using namespace std;

class Matrix
{
public:
    Matrix()
    {
        row=0;
        col=0;
        p=NULL;
    }
    Matrix(int h,int l)//构造函数
    {
        row=h;
        col=l;
        //p=new int[row][col];错误的写法
        p=new int*[row];//该写法内存不连续
        for(int i=0;i>p[i][j];
    };
    void show();
    Matrix& operator=(const Matrix &m);
    friend Matrix operator+(const Matrix &m,const Matrix &n);
    friend Matrix operator-(const Matrix &m,const Matrix &n);
private:
    int row;//行
    int col;//列
    //int* p;错误的写法
    int** p;
};
void Matrix::show()
{
    for(int i=0;i
#include
#include

using namespace std;

class Matrix
{
public:
    Matrix()
    {
        row=0;
        col=0;
        p=NULL;
    }
    Matrix(int h,int l)//构造函数
    {
        row=h;
        col=l;
        p=new int[row*col];//该写法内存连续
        set();
    };
    /*Matrix(Matrix &c)//复制构造函数,可不写,不影响题中要求的功能实现
    {
        row=c.row;
        col=c.col;
        p=new int[row*col];
        for(int i=0;i>p[i*col+j];
    };
    void show();
    Matrix& operator=(const Matrix &m);
    friend Matrix operator+(const Matrix &m,const Matrix &n);
    friend Matrix operator-(const Matrix &m,const Matrix &n);
private:
    int row;//行
    int col;//列
    int* p;//注意这里的不同
};
void Matrix::show()
{
    for(int i=0;i

你可能感兴趣的:(2017杭电C++考试最后一题代码(自做,非标准答案))