用静态函数计算总销售额和平均值
class store {
public:
store(int n, int q, float p) :num(n), quantity(q), price(p){}
void sumprice() ;
static float average(); //定义静态成员函数(无this指针),可以通过类调用函数也可以通过对象调用函数
//作用是处理静态成员,不能访问类中的非静态成员
static void display() ;
private:
static float discount;
static float sum;
static int n; //静态数据成员,各对象的静态成员数据都是一样的(不能用构造函数对其进行初始化)
//可通过对象名引用也可以通过类名引用(store::n)
int num;
int quantity;
float price;
};
void store::sumprice() {//计算总价格的函数
float rate = 1;
if (quantity < 10)
rate = 0.98;//当购买件数超过十,打9.8折
sum+= price * quantity *( 1-discount)*rate;//将总价累和
n = n + quantity;
};
float store::average() {//利用静态函数调用静态成员求平均
return (sum / n);
}
void store::display() {
cout << "total summoney:" << sum << " average is:" << average();
}
float store::sum = 0;
int store::n = 0;
float store::discount = 0.05;//随机定义当天折扣(对静态数据成员进行初始化)
int main() {
store employ[3] = { {101,5, 23.5 },
{102,12, 24.56},
{103, 100, 21.5} };
for (int i = 0; i < 3; i++)
employ[i].sumprice();//将employ数组中各元素中的总价和总件数累加
store::display();//类名调用静态display函数,输出结果
return 0;
}