别忘记给c++类中的静态数据成员定义!
2006-05-02 01:35
323 查看
哈哈,好久没有写过c++代码了,今天在一个c++类中定义了一个静态数据成员,结果在编译的时候总是不能通过,报出如下的一个问题:
PartSpecialDemo error LNK2001: 无法解析的外部符号 "public: static int MyClass::COUNT" (?COUNT@MyClass@@2HA)
找了半天,才发现是这个静态数据成员惹得祸,忘记在类外面给这个静态成员变量定义了,原来静态数据成员的声明与定义是分开的,这与类非静态数据成员的声明与定义是不一样的,类非静态数据成员的声明的同时也就是定义,如下面代码所示:
class MyClass
{
private:
static int _snum; //declare static data member,but not define
//static data member
int _num; //declare and define data member
}
int MyClass::_snum = 0; //define static data member
所以在以后的c++代码中千万别忘记了给你的静态数据成员定义!
PartSpecialDemo error LNK2001: 无法解析的外部符号 "public: static int MyClass::COUNT" (?COUNT@MyClass@@2HA)
找了半天,才发现是这个静态数据成员惹得祸,忘记在类外面给这个静态成员变量定义了,原来静态数据成员的声明与定义是分开的,这与类非静态数据成员的声明与定义是不一样的,类非静态数据成员的声明的同时也就是定义,如下面代码所示:
class MyClass
{
private:
static int _snum; //declare static data member,but not define
//static data member
int _num; //declare and define data member
}
int MyClass::_snum = 0; //define static data member
所以在以后的c++代码中千万别忘记了给你的静态数据成员定义!
相关文章推荐
- 别忘记给c++类中的静态数据成员定义
- 为什么C++类定义中,数据成员不能被指定为自身类型,但可以是指向自身类型的指针或引用?为什么在类体内可以定义将静态成员声明为其所属类的类型呢 ?
- C++类的静态数据成员及其用法
- 只有静态的常量整形数据成员才可以在类定义中初始化
- C++在类中定义静态数据成员
- C++静态数据成员定义及应用浅谈
- C++实例 静态成员的引入——静态数据成员的定义、调用,静态成员函数的实现、调用。
- C++类特殊数据成员总结(常数据成员、静态数据成员、静态常数据成员)
- C++类静态数据成员与类静态成员函数
- C++类的三种数据成员:常量(const)、静态(static)、普通 的赋值方式
- 有关C++类中数据成员变量定义的一些想法
- thinking in c++读书笔记--类的静态数据成员的定义的连接属性:外部连接属性
- C++类中的常数据成员与静态数据成员之间的区别
- C++类静态数据成员与类静态成员函数
- 类静态数据成员定义
- C++类中静态成员数据和静态成员函数的自我理解
- 全局数据管理—使用C++类的静态成员取代全局数据
- C++类中数据成员为类类型时,定义为对象还是定义为指针?
- C++类中的常数据成员和静态数据成员的区别
- 只有静态常量整型数据成员才能在类定义中初始化