⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cc5_2.cpp

📁 这我们老师对是面向对象程序设计(清华大学出版社)一书制作的PPT
💻 CPP
字号:
#include<iostream.h>
#include<stdlib.h>
class matrix;
class vector
{
public:
	vector(int);
	~vector(){delete[]v;}
	vector(vector&);
	//int size(){return sz;}
	void disp();
	int&elem(int);
	friend vector multiply(matrix&m,vector&v);
protected:
	int*v;
	int sz;
};
vector::vector(int s)
{
	if (s<=0)
	{
		cerr<<"error!"<<endl;
		exit(1);
	}
	sz=s;
	v=new int[s];
}
int &vector::elem(int i)
{
	if(i<0||i>=sz)
	{
		cerr<<"error!"<<endl;
	}
	return v[i];
}
vector::vector(vector& vec)
{
	v=new int[sz=vec.sz];
	for (int i=0;i<sz;i++)
		v[i]=vec.v[i];
	
}
void vector::disp()
{
	for (int i=0;i<sz;i++)
		cout<<v[i]<<" ";
	cout<<endl;
}
class matrix
{
public:
	matrix(int,int);
	matrix(matrix&);
	~matrix(){delete[]m;}
	//int sizel(){return szl;}
	//int sizer(){return szr;}
	//void disp();
	int &elem(int,int);
	friend vector multiply(matrix&m,vector&v);
protected:
	int*m;
	int szr;
	int szc;
};
matrix::matrix(int i,int j)
{
	if (i<=0||j<=0)
	{
		cerr<<"error!"<<endl;
		exit(1);
	}
	szr=i;
	szc=j;
	m=new int[i*j];
}
matrix::matrix(matrix& mat)
{
	szr=mat.szr;
	szc=mat.szc;
	m=new int[szr*szc];
	for (int i=0;i<szr*szc;i++)
		m[i]=mat.m[i];
}
int& matrix::elem(int i,int j)
{
	if(i<0||i>=szr||j<0||j>=szc)
	{
		cerr<<"error!"<<endl;
		exit(1);
	}
	return m[i*szc+j];
}

 vector multiply(matrix&m,vector&v)
 {
	 if (m.szc!=v.sz)
	 {
		 cerr<<"error!"<<endl;
		 exit(1);
	 }
	 vector r(m.szr);
	 for (int i=0;i<m.szr;i++)
	 {
		 r.v[i]=0;
		 for(int j=0;j<m.szc;j++)
			 r.v[i]+=m.m[i*m.szc+j]*v.v[j];
	 }
	 return r;
 }
 void main()
 {
	 matrix ma(4,3);
	 ma.elem(0,0)=1;ma.elem(0,1)=2;ma.elem(0,2)=3;
	 ma.elem(1,0)=0;ma.elem(1,1)=1;ma.elem(1,2)=2;
	 ma.elem(2,0)=1;ma.elem(2,1)=1;ma.elem(2,2)=3;
     ma.elem(3,0)=1;ma.elem(3,1)=2;ma.elem(3,2)=1;
	 vector ve(3);
	 ve.elem(0)=2;ve.elem(1)=1;ve.elem(2)=0;
	 vector va=multiply(ma,ve);
	 va.disp();
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -