#pragma #include<iostream> using std::cout; using std::endl; class vectorInt{ public: vectorInt(int n); vectorInt(int n,int value); vectorInt(vectorInt &x); int &at(int index); ~vectorInt(); int get_size() const; friend void output(vectorInt &x); private: int size; int *p; }; vectorInt::vectorInt(int n):size{n}{ cout<<"constructor 1 called"<<endl; p=new int[n]; } vectorInt::vectorInt(int n,int value):size{n}{ cout<<"constructor 2 called"<<endl; p=new int[n]; for(int i=0;i<n;i++){ p[i]=value; } } vectorInt::vectorInt(vectorInt &x):size{x.size}{ cout<<"copy constructor called"<<endl; p=new int[size]; for(int i=0;i<size;i++){ p[i]=x.p[i]; } } int &vectorInt::at(int index){ return p[index]; } vectorInt::~vectorInt(){ cout<<"destructor called"<<endl; delete[] p; } int vectorInt::get_size() const{ cout<<size<<endl; } void output(vectorInt &x){ for(auto i=0;i<x.size;i++) cout<<x.p[i]<<","; cout<<"\b\b\n"; }
#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(); }
#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(); }
#pragma #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); 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; }; Matrix::Matrix(int n):lines{n},cols{n}{ p=new double[n*n]; } Matrix::Matrix(int n,int m):lines{n},cols{m}{ p=new double[n*m]; } Matrix::Matrix(const Matrix &x) { lines=x.lines; cols=x.cols; p=new double[lines*cols]; for(int i=0;i<lines;i++) { for(int j=0;j<cols;j++) { p[i*cols+j]=x.p[i*cols+j]; } } } Matrix::~Matrix() { delete[] p; } void Matrix::set(const double *pvalue){ for(int i=0;i<lines;i++) { for(int j=0;j<cols;j++) { p[i*cols+j]=*pvalue; pvalue++; } } } void Matrix::set(int i,int j,int value) { p[i*cols+j]=value; } double& Matrix::at(int i,int j){ return p[i*cols+j]; } double Matrix::at(int i,int j)const{ return p[i*cols+j]; } int Matrix::get_lines()const{ return lines; } int Matrix::get_cols()const{ return cols; } void Matrix::print()const{ for(int i=0;i<lines;i++) { for(int j=0;j<cols-1;j++) { cout<<p[i*cols+j]<<","; } cout<<p[i*cols+cols-1]<<endl; } }
标签:const,Matrix,int,double,cols,实验,vectorInt From: https://www.cnblogs.com/djy769855989/p/16856028.html