关于静态数据成员与静态成员函数的…

#include
using namespace std;
class commodity
{   public:
      commodity(int n,int q,float p):num(n),quantity(q),price(p){}
      void total();
      static float average();
      static void display(); //设置为静态的目的是可以在main函数中直接用commodity::display()来调用,                              否则要指定一个对象比如 comm[2] 来调用,显得程序很乱。
    private:
  int num;
  int quantity;
  float price;
  static float discount;
  static float sum;
  static int n_total;
} ;//千万不要忘了这个;号

void commodity::total()
{
  if(quantity<=10)
      sum = sum + quantity*price;
  if(quantity>10)
sum = sum + quantity*price*discount;
   
    n_total = n_total + quantity;
  }

float commodity::average()
{
    return(sum/n_total);
}

void commodity::display()
{
cout<<"总销售款:"<<sum<<" 平均售价:"<<average()<<endl;
}

float commodity::sum = 0;
float commodity::discount = 0.98;
int   commodity::n_total = 0;

int main()
{ commodity comm[3]={
commodity(101,5,23.5),
commodity(102,12,24.56),
commodity(103,100,21.5)
    };
    for(int i=0;i<3;i++)
      comm[i].total();
      //cout<<"总销售款:"<<sum<<" 平均售价:"<<commodity::average()<<endl; //sum放在了类外,就不                                                    能输出。average前必须要加上commodity::,否则也                                                    找不到它。最好的方法就是用成员函数来输出。
      commodity::display();
      system("pause");
      return 0;
}

你可能感兴趣的:(关于静态数据成员与静态成员函数的…)