任务五
#include <iostream> #include "vectorInt.hpp" void test(){ using namespace std; int n; cin>>n; vectorInt x1(n); for(auto i=0;i<n;i++){ x1.at(i)=i*i; } output(x1); vectorInt x2(n,42); vectorInt x3(x2); output(x2); output(x3); x2.at(0)=77; output(x2); output(x3); } int main(){ test(); }.cpp
#include <iostream> using namespace std; class vectorInt{ public: vectorInt(int a); vectorInt(int a,int b); vectorInt(vectorInt& S); ~vectorInt(); int &at(int i); int g_s(); friend void output(vectorInt &S); private: int *p; int size; }; vectorInt::vectorInt(int a):size{a} { p=new int[a]; for(auto i=0:a) { p[i]=0; } cout<<"constructor 1 called."<<endl; } vectorInt::vectorInt( vectorInt& S) { this->p=new int[S.size]; this->size=S.size; for(int i=0;i<size;++i) { this->p[i]=S.at(i); } cout<<"copy constructor called."<<endl; } vectorInt::vectorInt(int a,int b):size{a} { p=new int[a]; for(int i=0;i<size;++i) { p[i]=b; } cout<<"constructor 2 called."<<endl; } vectorInt::~vectorInt() { delete [] p; cout<<"destructor called."<<endl; } int &vectorInt::at(int i) { return p[i]; } int vectorInt::g_s() { return size; } void output(vectorInt &S) { for(int i=0;i<S.g_s();++i) { cout<<S.at(i)<<", "; } cout<<"\b\b \a"; }.hpp
任务六:
#include <iostream> #include "matrix.hpp" void test(){ using namespace std; double x[]={1,2,3,4,5,6}; Matrix m1(3,2); m1.set(x); m1.print(); cout<<"the first line is: "<<endl; cout<<m1.at(0,0)<<" "<<m1.at(0,1)<<endl; cout<<endl; Matrix m2(2,3); m2.set(x); m2.print(); cout<<"the first line is: "<<endl; cout<<m2.at(0,0)<<" "<<m2.at(0,1)<<" "<<m2.at(0,2)<<endl; cout<<endl; Matrix m3(m2); m3.set(0,0,999); m3.print(); } int main(){ test(); }.cpp
#pragma once #include <iostream> using std::cout; using std::endl; class Matrix{ public: Matrix(int n); Matrix(int n,int m); Matrix(const Matrix &X); ~Matrix(); void set(const double* pvalue); void set(int i,int j,int value); double &at(int i,int j)const; int get_lines()const; int get_cols()const; void print()const; private: int lines; int cols; double* p; }; int Matrix::get_lines()const { return lines; } int Matrix::get_cols()const { return cols; } Matrix::Matrix(int n,int m):lines{n},cols{m} { p=new double[n*m]; } Matrix::Matrix(int n):lines{n},cols{n} { p=new double[n*n]; } Matrix::Matrix(const Matrix& X) { this->lines=X.get_lines(); this->cols=X.get_cols(); this->p=X.p; } void Matrix::set(int i,int j,int value) { int k=i*cols+j; p[k]=value; } void Matrix::set(const double*pvalue) { int k=0; for(k=0;k<lines*cols;k++) { p[k]=pvalue[k]; } } void Matrix:: print()const { for(int i=0;i<lines;++i) { for(int j=0;j<cols;++j) { if(j==cols-1) { cout<<p[i*cols+j]<<endl; } else { cout<<p[i*cols+j]<<", "; } } } } double &Matrix::at(int i,int j)const { return p[i*cols+j]; } Matrix::~Matrix() { delete [] p; }.hpp
标签:const,Matrix,int,void,cols,实验,vectorInt From: https://www.cnblogs.com/shun16/p/16871319.html