ホームに戻る
 クラスのサンプル(球クラス)

/*
*
*  クラスのサンプル(球クラス)
*
*  球の半径、表面積、体積をメンバ変数に持ち、
*  半径値から各値を設定、各値を取得できるメンバ関数を持つクラス
*
*/

#ifndef __SPHERE_CPP__
#define __SPHERE_CPP__

#include <iostream>

class SPHERE{
  double radius;
  double area;
  double volume;
  double calcArea(const double &r){return (r * r * SPHERE::pai * 4.0);}
  double calcVolume(const double &r){return (r * r * r * SPHERE::pai * 4.0 / 3.0);}
  static const double pai;
public:
  SPHERE(double r = 1.0) : 
  radius(r), area(calcArea(r)), volume(calcVolume(r)){};
  void setRadius(const double &r){this-> radius = r; calcArea(r); calcVolume(r);}
  const double &getRadius() const {return radius;}
  const double &getArea() const {return area;}
  const double &getVolume() const {return volume;}
};

#endif // __SPHERE_CPP__

const double SPHERE::pai = 3.14159;

using namespace std;

void print(const SPHERE &s){
  cout << s.getRadius() << endl;
  cout << s.getArea() << endl;
  cout << s.getVolume() << endl;
}

int main(){
  SPHERE s(2.0);

  print(s);

  return 0;
}

 結果

2
50.2654
33.5103

inserted by FC2 system