#include<iostream>
using namespace std;
class A{
private:
static int x;
public:
A(int a)
{
x=a;
}
static void print();
};
void A::print()
{
cout<<x<<endl;
}
int main()
{
A p1(1);
A::print();
}错在哪里?感觉是static x 的定义问题,求解
3 回答
已采纳
MinRam
TA贡献87条经验 获得超24个赞
C++类的静态成员变量是需要定义的,即 分配内存。
如果没有分配空间,就无法访问到静态成员。
调试方法:
int A::a; // 添加在类的定义部分,使static int a 有定义 // 和 void A::print() 函数的定义,是同样的道理
__YXQ__
TA贡献48条经验 获得超15个赞
静态成员需在类外部初始化
#include <iostream>
using namespace std;
class A{
private:
static int a;
public:
A( int x ){
a = x;
}
static void print();
};
void A ::print(){
cout<<a<<endl;
}
int A::a = 0;
int main(){
A p(1);
A::print();
return 0;
}- 3 回答
- 1 关注
- 2031 浏览
添加回答
举报
0/150
提交
取消
