首页 新闻 会员 周边

请高手帮我看看代码C++

0
悬赏园豆:10 [已解决问题] 解决于 2011-11-08 12:53
//统计实例的个数
#include<iostream>

using std::cout;
using std::endl;

class MYCBox
{
public:
static int objectCount;
MYCBox()
{
cout<<endl
<<"Default constructor called.";
m_Length=m_Width=m_Height=1.0;
objectCount++;
}
MYCBox(double lv,double bv=1.0,double hv=1.0)
{
cout<<endl<<"Constructor called.";

m_Length=lv;
m_Width=bv;
m_Height=hv;
objectCount++;
}

double Volume() const
{
return m_Length*m_Width*m_Height;
}


private:
double m_Length;
double m_Width;
double m_Height;

};

int main()
{
MYCBox boxes[5];
MYCBox cigar(8.0,5.0,1.0);

cout<<endl<<endl
<<"Number fo objects (through class) = "
<<MYCBox::objectCount;
cout<<endl
<<"Number of objects (through object) = "
<<boxes[2].objectCount;

return 0;
}

错误 1 error LNK2001: 无法解析的外部符号 "public: static int MYCBox::objectCount" (?objectCount@MYCBox@@2HA) E:\工作\Test\TMyC++\TMyC++\Ex7_12.obj TMyC++

 

错误 2 error LNK1120: 1 个无法解析的外部命令 E:\工作\Test\TMyC++\Debug\TMyC++.exe 1 1 TMyC++

 

IceS的主页 IceS | 初学一级 | 园豆:197
提问于:2011-11-07 23:41
< >
分享
最佳答案
0

静态变量需要赋值,cpp中加上 int MYCBox::objectCount=0;

收获园豆:6
2012 | 高人七级 |园豆:21230 | 2011-11-08 08:11

MYCBox::objectCount=0;

放到main函数中,没效果还是原来的两个错误。

 

static int objectCount=0; 

在声明是赋予初始值报错。

错误 1 error C2864: “MYCBox::objectCount”: 只有静态常量整型数据成员才可以在类中初始化 e:\工作\test\tmyc++\tmyc++\ex7_12.cpp 10 1 TMyC++

 

要求是const关键字,加了关键字就不能统计类实例的个数了.

IceS | 园豆:197 (初学一级) | 2011-11-08 09:22

int MYCBox::objectCount=0;

刚岗把静态变量放在全局中尝试了一下,生成成功!

具体原因还不太清楚,正在找原因。

谢谢

IceS | 园豆:197 (初学一级) | 2011-11-08 12:52
其他回答(1)
0

你的objectCount定义的有问题,

你可以参考一下这个

http://topic.csdn.net/u/20110331/10/50ac6c0b-574c-4126-8cde-e09a16ca458f.html

收获园豆:4
喬喬AI | 园豆:996 (小虾三级) | 2011-11-08 08:32

先看看

支持(0) 反对(0) IceS | 园豆:197 (初学一级) | 2011-11-08 12:45

谢谢,因为1楼比你早点。伱的答案对我也很有帮助,呵呵

我豆豆不多,应该不会生气吧  :-D

支持(0) 反对(0) IceS | 园豆:197 (初学一级) | 2011-11-08 12:55

@IceS: 严重了,我是为尽可能解决问题而来,不是看着豆豆来的,没豆豆的问题如果而我会我也照样回答。这有什么生气的

支持(0) 反对(0) 喬喬AI | 园豆:996 (小虾三级) | 2011-11-08 12:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册