Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //pendulum.h
- #include<string>
- using std::string;
- #ifndef pendulum_H
- #define pendulum_H
- class Pendulum
- {
- public:
- Pendulum(const double,const double,double,double);
- //check function
- const double check(const double, const string) const; //used for (L,M)
- // getfuncties
- double getL() const;
- double getM() const;
- double getTheta();
- double getOmega();
- //overload operator
- Pendulum operator+ (Pendulum);
- Pendulum operator*(const double a);
- Pendulum operator=(Pendulum);
- //copy constructor
- Pendulum(const Pendulum& );
- private:
- double L_,M_,Theta_,Omega_;
- };
- #endif
- //pendulum.cpp
- #include "pendulum.h"
- #include <iostream>
- #include <string>
- using namespace::std;
- //constructor
- Pendulum::Pendulum(const double L, const double M, double Theta, double Omega)
- :L_(check(L,"L")),M_(check(M,"M"))
- {}
- //check functie
- const double Pendulum::check(const double d, const string str) const
- {
- if (d<0.)
- {
- cout << "ERROR: " << str << " (" << d << ") has to be positive" << endl;
- exit(EXIT_FAILURE);
- }
- return d;
- }
- //getfuncties
- double Pendulum::getM() const
- {
- return M_;
- }
- double Pendulum::getL() const
- {
- return L_;
- }
- double Pendulum::getTheta()
- {
- return Theta_;
- }
- double Pendulum::getOmega()
- {
- return Omega_;
- }
- //overloading operators
- Pendulum Pendulum::operator+ (Pendulum param)
- {
- return Pendulum(L_, M_, Theta_+param.Theta_, Omega_+param.Omega_);
- }
- Pendulum Pendulum:: operator* (const double param)
- {
- return Pendulum(L_, M_, param*Theta_, param*Omega_);
- }
- Pendulum Pendulum::operator=(Pendulum param)
- {
- return Pendulum(L_, M_, param.Theta_, param.Omega_);
- }
- //copy constructor
- Pendulum::Pendulum(const Pendulum& Object)
- {
- *this=Object;
- }
- //doublependulum.h
- #ifndef doublependulum_H
- #define doublependulum_H
- #include "pendulum.h"
- class DoublePendulum
- {
- public:
- //constructor
- DoublePendulum(Pendulum ,Pendulum );
- //getfuncties
- Pendulum getUp();
- Pendulum getDown();
- //Overload operators
- DoublePendulum operator+ (DoublePendulum);
- DoublePendulum operator*(const double a);
- DoublePendulum &operator=(const DoublePendulum &);
- //copy constructor
- DoublePendulum(const DoublePendulum& );
- private:
- Pendulum PendUp;
- Pendulum PendDown;
- };
- #endif
- //doublependulum.cpp
- #include "doublependulum.h"
- //constructor
- DoublePendulum::DoublePendulum(Pendulum Up,Pendulum Down)
- :PendUp(Up),PendDown(Down)
- {}
- //getfunctions
- Pendulum DoublePendulum::getUp()
- {
- return PendUp;
- }
- Pendulum DoublePendulum::getDown()
- {
- return PendDown;
- }
- //Overload operators
- DoublePendulum DoublePendulum::operator+ (DoublePendulum param)
- {
- return DoublePendulum(PendUp + param.PendUp,PendDown + param.PendDown);
- }
- DoublePendulum DoublePendulum::operator* (const double param)
- {
- return DoublePendulum(PendUp*param,PendDown*param);
- }
- DoublePendulum& DoublePendulum::operator= (const DoublePendulum& param)
- {
- return *this; // assign to members of this object
- }
- //Copy constructor
- DoublePendulum::DoublePendulum(const DoublePendulum& Object)
- {
- *this=Object;
- }
- //Main.cpp
- #include "pendulum.h"
- #include "doublependulum.h"
- int main()
- {return 0;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement