1.因为没有给静态成员函数指明具体的类型,导致程序错误。
#include<iostream>
using namespace std;
class product
{
public:
product(int m,int q,float p):num(m),quantity(q),price(p){
};
void total();
static void display();
static float average();
private:
int num;
int quantity;
float price;
static float sum;
static float discount;
static int n;
};
float sum=0; //错误
float discount=0.05; //错误
int n=0; //错误
void product::total()
{
float rate=1;
if(quantity>10)
rate=0.98;
sum=sum+price*quantity*rate*(1-discount);
n=n+quantity;
}
void product::display()
{
cout<<sum<<' '<<average()<<endl;
}
float product::average()
{
return (sum/n);
}
int main()
{
product pro[3]={product(101,5,23.5),product(102,12,24.56),product(103,100,21.5)};
int i;
for(i=0;i<3;i++)
pro[i].total();
product::display();
return 0;
}
2.经过修改之后</