#include <iostream> #include <vector> #include <string> using namespace std; class vectorInt { public: vectorInt(); vectorInt(int n); vectorInt(int n,int value); vectorInt(const vectorInt &vi); ~vectorInt(); friend int output(vectorInt &v) { int i; for (i = 0; i < v.size; i++) cout << v.p[i] << " "; cout << endl; } int &at(int index) { if (index >= 0 && index < size) return p[index]; } private: int size; int *p; }; vectorInt::vectorInt(int n) { cout << "constructor1 called.\n"; size = n; p = new int[n]; } vectorInt::vectorInt(int n,int value) { size = n; p = new int[n]; for(int j=0;j < n;j++) { p[j] = value; } } vectorInt::vectorInt(const vectorInt &vi) { cout << "copy structor called" << endl; size = vi.size; p = new int[size]; for(auto i = 0; i < size; ++i) p[i] = vi.p[i]; } vectorInt::~vectorInt() { cout << "destructor called" << endl; delete[] p; }
#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(); }
#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; }
标签:const,Matrix,int,cols,实验,vectorInt,include From: https://www.cnblogs.com/qjj12-30/p/16855715.html