用静态变量统计C++对象个数的问题,求大侠帮忙

狼痕 2011-11-25 10:56:30
下面是源代码?这个程序编译器老是说没有定义nCount,为什么呀?明明已经定义啦?
#include<iostream>
#include"head.h"
using namespace std;
class CPoint
{
private:
int x,y;

static int nCount; // nCount用于保存点的个数
public:
CPoint(int px=0, int py=0);
CPoint(CPoint&);
~CPoint();
int GetX();
int GetY();
void SetX(int);
void SetY(int);
void ShowPoint();
};
CPoint::CPoint(int px,int py)
{
SetX(px);
SetY(py);
nCount++;
}
CPoint::CPoint(CPoint& p)//拷贝构造函数
{
SetX(p.GetX());
SetY(p.GetY());
nCount++;
}
CPoint::~CPoint()
{
nCount--;
}
int CPoint::GetX()
{
return x;
}

int CPoint::GetY()
{
return y;
}

void CPoint::SetX(int a)
{
x = a;
}
void CPoint::SetY(int b)
{
y = b;
}
void CPoint::ShowPoint()
{

cout << "(" << x << "," << y << ")" << endl;
}
...全文
266 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
狼痕 2011-11-25
  • 打赏
  • 举报
回复
对啦!谢谢大侠!
xingfeng2510 2011-11-25
  • 打赏
  • 举报
回复
在类中的静态成员变量是声明而不是定义,一般把定义放到类的实现文件中,
int CPoint::nCount = 0;
qwer_boo 2011-11-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pengzhixi 的回复:]

加上这句int CPoint::nCount=0;放类外面
[/Quote]静态变量要在外边定义,否则只是声明
pengzhixi 2011-11-25
  • 打赏
  • 举报
回复
加上这句int CPoint::nCount=0;放类外面

65,206

社区成员

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

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