#include #include /*class GBaseShape { public: GBaseShape(); virtual void EvalVolume(); virtual void EvalSurface(); double GetVolume() const; double GetVolume() const; private: double Volume, Surface; bool IfVolumeCalculated; bool IfSurfaceCalculated; }; */ class Cube { public: explicit Cube(double _L = 0, double _W = 0, double _H = 0, long int N = 0); ~Cube(){ // std::cout << "Destructor was run!\n"; delete Data; } // void SetAll(); void SetL(double _L); // void SetB(double _B); // void SetC(double _C); const double& GetL(); double& operator[] (int i){ if(i==1) return L; if (i==2) return W; if (i==3) return H; return tmp; } private: double L,W,H; double* Data; double tmp; }; Cube::Cube(double _L , double _W , double _H, long int N ){ SetL(_L); Data = new double[N]; //std::cout << "Constructor was run!\n"; } void Cube::SetL(double _L){ L = _L; } const double& Cube::GetL() { return L; } int main(){ Cube cube(5,6,10); //cube.GetL()++; // for (int i{0}; i<10000; i++) // { // auto c = Cube(0,0,0,1000000); // } //for (int i{0}; i<10000000000; i++) // std::cout << "!!!\n"; std::cout << cube[1] << "\n"; return 0; }