shapes was modified
This commit is contained in:
parent
c0f971c2ed
commit
07f4829a94
Binary file not shown.
|
@ -0,0 +1,13 @@
|
||||||
|
#include "shapes.h"
|
||||||
|
#include "vector.h"
|
||||||
|
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
|
||||||
|
myspace::vector<double> a(10,5.0);
|
||||||
|
std::cout<< a[15] << "\n";
|
||||||
|
|
||||||
|
myspace::vector<Cube> a(10,Cube());
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
#include "shapes.h"
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
|
||||||
|
#include "shapes.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";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Cube::Cube(const Cube &c){
|
||||||
|
L = c.L;
|
||||||
|
W = c.W;
|
||||||
|
H = c.H;
|
||||||
|
N = c.N;
|
||||||
|
Data = new double[N];
|
||||||
|
for (int i{0}; i < N ; i++ )
|
||||||
|
Data[i] = c.Data[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
void Cube::SetL(double _L){
|
||||||
|
L = _L;
|
||||||
|
}
|
||||||
|
|
||||||
|
const double& Cube::GetL() {
|
||||||
|
return L;
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
class Cube {
|
||||||
|
public:
|
||||||
|
explicit Cube(double _L = 0, double _W = 0, double _H = 0, long int N = 1);
|
||||||
|
Cube(const Cube& c);
|
||||||
|
|
||||||
|
~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 ;
|
||||||
|
};
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
namespace myspace {
|
||||||
|
template <typename T>
|
||||||
|
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 <typename T>
|
||||||
|
vector<T>::vector(int _N, T _Val ):N(_N){
|
||||||
|
data = new T*[N];
|
||||||
|
for (int i{0}; i < N; i++){
|
||||||
|
data[i] = new T(_Val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
vector<T>::~vector(){
|
||||||
|
delete [] data;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T vector<T>::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 ///
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue