From d3f67da7867dc4d2e7805c02c0c663d09522fe65 Mon Sep 17 00:00:00 2001 From: davoudn Date: Mon, 10 Jun 2024 14:13:07 +0330 Subject: [PATCH] default constructor was added. --- .../examples/vector/a.out | Bin 25824 -> 17768 bytes .../main01_shapes_defaultConstructor.cpp | 16 +++++ .../vector/shapes_defaultConstructor.cpp | 39 ++++++++++++ .../vector/shapes_defaultConstructor.h | 23 +++++++ .../examples/vector/vector.h | 12 ++-- .../examples/vector/vector_pointer.h | 58 ++++++++++++++++++ 6 files changed, 140 insertions(+), 8 deletions(-) create mode 100644 CPlusPlus20ForProgrammers-master/examples/vector/main01_shapes_defaultConstructor.cpp create mode 100644 CPlusPlus20ForProgrammers-master/examples/vector/shapes_defaultConstructor.cpp create mode 100644 CPlusPlus20ForProgrammers-master/examples/vector/shapes_defaultConstructor.h create mode 100644 CPlusPlus20ForProgrammers-master/examples/vector/vector_pointer.h diff --git a/CPlusPlus20ForProgrammers-master/examples/vector/a.out b/CPlusPlus20ForProgrammers-master/examples/vector/a.out index 14ad967706fc21d6ff509375df811b9895070d63..39cbebfe2d85a9450c67d580844047b88ec1659d 100755 GIT binary patch literal 17768 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 Rzr23_MoVI=OTmST{{d+xRG9z( literal 25824 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 Su`3+G=Bs6^(k5VQYX1vwTc@Z1 diff --git a/CPlusPlus20ForProgrammers-master/examples/vector/main01_shapes_defaultConstructor.cpp b/CPlusPlus20ForProgrammers-master/examples/vector/main01_shapes_defaultConstructor.cpp new file mode 100644 index 0000000..c0092c9 --- /dev/null +++ b/CPlusPlus20ForProgrammers-master/examples/vector/main01_shapes_defaultConstructor.cpp @@ -0,0 +1,16 @@ +#include "shapes_defaultConstructor.h" +#include + +int main(){ + Cube a(1.0); + Cube b(3.0); + +// Cube d{Cube()}; + Cube c(a); + + c[0] = 100.0; + + std::cout << "a.data-->"<< a[0] << " c.data--->" << c[0]; + +return 0; +} diff --git a/CPlusPlus20ForProgrammers-master/examples/vector/shapes_defaultConstructor.cpp b/CPlusPlus20ForProgrammers-master/examples/vector/shapes_defaultConstructor.cpp new file mode 100644 index 0000000..28d8717 --- /dev/null +++ b/CPlusPlus20ForProgrammers-master/examples/vector/shapes_defaultConstructor.cpp @@ -0,0 +1,39 @@ + +#include "shapes_defaultConstructor.h" + + +double& Cube::operator() (int i){ + try { + if(i==1) + return L; + if (i==2) + return W; + if (i==3) + return H; + if (i<1 || i > 3) + throw(i); + } + catch(int i){ + std::cout << "out of index" << i << "\n"; + exit(0); + } + return tmp; + } + + +Cube::Cube(double _L , double _W , double _H, long int _N ):N(_N){ + SetL(_L); + Data = new double[N]; + Data[0] = _L; + //std::cout << "Constructor was run!\n"; +} + + + +void Cube::SetL(double _L){ + L = _L; +} + +const double& Cube::GetL() { + return L; +} diff --git a/CPlusPlus20ForProgrammers-master/examples/vector/shapes_defaultConstructor.h b/CPlusPlus20ForProgrammers-master/examples/vector/shapes_defaultConstructor.h new file mode 100644 index 0000000..fddba65 --- /dev/null +++ b/CPlusPlus20ForProgrammers-master/examples/vector/shapes_defaultConstructor.h @@ -0,0 +1,23 @@ +#include + +class Cube { + public: +explicit Cube(double _L = 0, double _W = 0, double _H = 0, long int N = 1); + + ~Cube(){ + std::cout << "Destructor was run!\n"; + delete [] Data; + } + void SetL(double _L); + + const double& GetL(); + double& operator() (int i); + double& operator[] (int i){return Data[i];}; + + private: + double L,W,H; + double* Data; + double tmp; + int N ; +}; + diff --git a/CPlusPlus20ForProgrammers-master/examples/vector/vector.h b/CPlusPlus20ForProgrammers-master/examples/vector/vector.h index d74f70f..4036f5e 100644 --- a/CPlusPlus20ForProgrammers-master/examples/vector/vector.h +++ b/CPlusPlus20ForProgrammers-master/examples/vector/vector.h @@ -14,25 +14,21 @@ class vector{ } ; protected: - T** data; + T* data; int N; }; template vector::vector(int _N, T _Val ):N(_N){ - data = new T*[N]; + data = new T[N]; for (int i{0}; i < N; i++){ - data[i] = new T(_Val); + data[i] = T(_Val); } } template vector::~vector(){ - for (int i{0};i < N; i++){ - delete data[i]; - std :: cout << i << "\n"; - } delete [] data; } @@ -40,7 +36,7 @@ template T vector::operator[] (int i){ try { if (i>=0 && i < N){ - return *data[i]; + return data[i]; } else throw(i); diff --git a/CPlusPlus20ForProgrammers-master/examples/vector/vector_pointer.h b/CPlusPlus20ForProgrammers-master/examples/vector/vector_pointer.h new file mode 100644 index 0000000..d74f70f --- /dev/null +++ b/CPlusPlus20ForProgrammers-master/examples/vector/vector_pointer.h @@ -0,0 +1,58 @@ +#include + +namespace myspace { +template +class vector{ + public: + vector(){} + vector(int _N, T _Val); + ~vector(); + T operator[] (int i); + void resize(); + int size(){ + return N; + } + ; + protected: + T** data; + int N; +}; + + +template +vector::vector(int _N, T _Val ):N(_N){ + data = new T*[N]; + for (int i{0}; i < N; i++){ + data[i] = new T(_Val); + } +} + +template +vector::~vector(){ + for (int i{0};i < N; i++){ + delete data[i]; + std :: cout << i << "\n"; + } + delete [] data; +} + +template +T vector::operator[] (int i){ + try { + if (i>=0 && i < N){ + return *data[i]; + } + else + throw(i); + } + catch(int i){ + std::cout << "out of range, try to access "<< i << " out of " << N <<"\n"; + exit(-1); + } + } + +/// end of namespace /// +} + + +