C++菜鸟问题,为什么下面的代码说 error LNK2001: 无法解析的外部符号 "public: static int A::sta" (?sta@A@@

yuyeshijie 2012-08-21 07:36:08
class A
{
public:
void print()
{
cout<<"a = "<<a<<'\n'<<"b = "<<b<<endl;
cout<<"str = "<<str<<endl;
cout<<"de = "<<de<<endl;
}
A():a(0),b(0){}
A(int c, double d )
{
a = c;
b = d;
}
static int sta;
private:
int a;
double b;
int de;

string str;
};



int _tmain(int argc, _TCHAR* argv[])
{
A::sta = 999;
A a;
a.print();
cout<< A::sta<<endl;
return 0;
}
...全文
1041 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sqhily2008 2012-09-13
  • 打赏
  • 举报
回复

class A
{
public:
void print()
{
cout<<"a = "<<a<<'\n'<<"b = "<<b<<endl;
cout<<"str = "<<str<<endl;
cout<<"de = "<<de<<endl;
}
A():a(0),b(0){}
A(int c, double d )
{
a = c;
b = d;
}
static int sta;
private:
int a;
double b;
int de;

string str;
};
int A::sta = 999;
int _tmain(int argc, _TCHAR* argv[])
{

A a;
a.print();
cout<< A::sta<<endl;
return 0;
}
a1286651722 2012-08-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
加一句int A::sta = 0;
类的静态成员变量需要这样子定义。
[/Quote]正解
nightkids_008 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
引用 2 楼 的回复:

变量sta必须在函数体外定义,把这行代码A::sta = 999;移到_main函数体外边。


把A::sta = 999;改为int A::sta = 999;
[/Quote]
正解
alex_suen 2012-08-21
  • 打赏
  • 举报
回复
楼上正解
xingfeng2510 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

变量sta必须在函数体外定义,把这行代码A::sta = 999;移到_main函数体外边。
[/Quote]

把A::sta = 999;改为int A::sta = 999;
xingfeng2510 2012-08-21
  • 打赏
  • 举报
回复
变量sta必须在函数体外定义,把这行代码A::sta = 999;移到_main函数体外边。
zjs100901 2012-08-21
  • 打赏
  • 举报
回复
加一句int A::sta = 0;
类的静态成员变量需要这样子定义。

65,170

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧