划地课堂吧 关注:267贴子:1,074
  • 0回复贴,共1

错误LNK2001无法解析的外部符号

只看楼主收藏回复

错误LNK2001无法解析的外部符号 "private: static float Product::sum" (?sum@Product@@0MA)
调试时三个静态变量都显示“无法解析的外部符号”,什么原因?怎么解决?
程序源代码:
#include <iostream>
using namespace std;
class Product
{
public:
Product(int n,int q,float p):num(n),quantity(q),price(p){}
void totle();
static float average();
static void display();
private:
int num;
int quantity;
float price;
static float sum;
static float discout;
static int n;
};
void Product::totle()
{
float rate = 1.0;
if (quantity > 10)rate = rate * 0.98;
sum = sum+price* quantity * rate*(1- discout );
n += quantity;
}
float Product::average()
{
return (sum / n);
}
void Product::display ()
{
cout << sum << endl;
cout << average();
}
int main()
{
Product prod[3] =
{
Product(1001,5,23.5),Product(1002,12,24.56),Product(1003,100,21.5)
};
for (size_t i = 0; i < 3; i++)
{
prod[i].totle();
}
Product::display();
return 0;
}


1楼2020-02-23 12:36回复