#include <iostream>
using namespace std;
class Goods{
public:
Goods(int n,int q,double p):num(n),quantity(q),price(p){};
void total();
static double avg();
static void display();
private:
int num;
int quantity;
double price;
static double discount;
static double sum;
static int n;
};
void Goods::total() {
double rate = discount;
if(quantity>10) rate *= 0.98;
sum += quantity*price*rate;
n += quantity;
}
double Goods::avg() {
return sum/n;
}
void Goods::display() {
cout << "总销售款: " << sum << endl;
cout << "平均售价: " << avg() << endl;
}
//静态数据只能在类体外进行初始化
double Goods::discount = 0.95;
double Goods::sum = 0;
int Goods::n = 0;
int main(){
//对象数组初始化
Goods goods[3] = {
Goods(101,5,23.5),
Goods(102,12,24.56),
Goods(103,100,21.5)
};
for(int i=0;i<3;i++){
goods[i].total();
}
Goods::display();
return 0;
}
运行结果: