//统计实例的个数
#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++
静态变量需要赋值,cpp中加上 int MYCBox::objectCount=0;
MYCBox::objectCount=0;
放到main函数中,没效果还是原来的两个错误。
static int objectCount=0;
在声明是赋予初始值报错。
错误 1 error C2864: “MYCBox::objectCount”: 只有静态常量整型数据成员才可以在类中初始化 e:\工作\test\tmyc++\tmyc++\ex7_12.cpp 10 1 TMyC++
要求是const关键字,加了关键字就不能统计类实例的个数了.
int MYCBox::objectCount=0;
刚岗把静态变量放在全局中尝试了一下,生成成功!
具体原因还不太清楚,正在找原因。
谢谢
你的objectCount定义的有问题,
你可以参考一下这个
http://topic.csdn.net/u/20110331/10/50ac6c0b-574c-4126-8cde-e09a16ca458f.html
先看看
谢谢,因为1楼比你早点。伱的答案对我也很有帮助,呵呵
我豆豆不多,应该不会生气吧 :-D
@IceS: 严重了,我是为尽可能解决问题而来,不是看着豆豆来的,没豆豆的问题如果而我会我也照样回答。这有什么生气的