Hellko

asd

Mar 10th, 2013
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. class fermion {
  4. protected:
  5.     int spin;   //spin/2
  6.     int mass;   //massa
  7. public:
  8.     fermion(int s, int m) : spin(s), mass(m) {}
  9.     fermion(const fermion& A) {spin=A.spin; mass=A.mass;}
  10.     fermion(void) {spin=1; mass=1;}
  11.     int s(void) {return spin;}
  12.     int m(void) {return mass;}
  13.     void print(const char c[]="\b") {printf("\nFermion %s: spin=%d/2, mass=%d",c,spin,mass); if(spin%2==0) printf("\tThis is not fermion!! It is BOSON");}
  14.  
  15.     friend fermion operator++(fermion&, int);
  16.     friend bool operator >(fermion, fermion);
  17.  
  18.     fermion operator+(fermion A) {return fermion(A.spin+this->spin,A.mass+this->mass);}
  19.     void operator=(const fermion& A) {spin=A.spin; mass=A.mass;}
  20. };
  21. fermion operator*(int,fermion);
  22. bool operator==(fermion,fermion);
  23.  
  24. fermion operator*(int k, fermion A) {
  25.     return fermion(A.s(),A.m()*k);
  26. }
  27. bool operator==(fermion A, fermion B) {
  28.     return (A.s()==B.s() && A.m()==B.m())
  29.             ?   1
  30.             :   0;
  31. }
  32.  
  33. fermion operator++(fermion& A, int) {
  34.     A.spin=A.spin+1;
  35.     return A;
  36. }
  37.  
  38. bool operator >(fermion A, fermion B) {
  39.     return (A.mass>B.mass)
  40.             ?   1
  41.             :   0;
  42. }
  43.  
  44. int main() {
  45.     fermion e1(1,1),e2(1,2),e3;
  46.     e1.print("      e1");
  47.     e2.print("      e2");
  48.     e1=e1+e1+e1;
  49.     e1.print("      e1");
  50.     e3=e2+e2+e2;
  51.     e3.print("      e3");
  52.     if(e3>e1) printf("\ne3>e1");
  53.     e3=10*e3;
  54.     e3.print("    10e3");
  55.     e3++;
  56.     e3.print("  10e3++");
  57.     e3++;
  58.     e3.print("10e3++++");
  59.  
  60. }
Advertisement
Add Comment
Please, Sign In to add comment