C++静态变量和静态成员函数的怪脾气
2015-04-06 01:14
459 查看
今天为了代码更加简洁,用了一个class MSGHelper来定义一些静态成员变量和静态成员函数。
开始时,我的写法是(不是真实代码,只是举例):
竟然编译报错,后来更正为:
即静态的成员函数或变量在类体外进行定义时要去掉static标识符;
注意:只有当类中的静态成员变量类型是常整形时,可以在类体内初始化,如:
其他类型,即使声明为const类型也不能在静态类中初始化。
开始时,我的写法是(不是真实代码,只是举例):
<strong>class helper { static int index; static void SENDMSG(tcpsocket *&,string &); }; static int helper::index=1; static void helper::SENDMSG(tcpsocket * &sock,string &MSG) { if(!sock || MSG.length()==0) return; sock->write(MSG); return ; }</strong>
竟然编译报错,后来更正为:
<strong>class helper { static int index; static void SENDMSG(tcpsocket *&,string &); }; int helper::index=1; void helper::SENDMSG(tcpsocket * &sock,string &MSG) { if(!sock || MSG.length()==0) return; sock->write(MSG); return ; }</strong>
即静态的成员函数或变量在类体外进行定义时要去掉static标识符;
注意:只有当类中的静态成员变量类型是常整形时,可以在类体内初始化,如:
class simple_string { static const int length=1; static char str[length + 1]; }; char simple_string::str[length +1]="default string";
其他类型,即使声明为const类型也不能在静态类中初始化。
相关文章推荐
- C++ 静态数据成员 成员函数 静态变量 全局变量(1)
- C++ 类中的静态变量和静态成员函数(转)
- C++关于this指针、静态变量和静态成员函数
- C++ 类中的静态变量和静态成员函数
- C++ 类中的静态变量和静态成员函数(转)
- C++关于this指针、静态变量和静态成员函数 http://www.cnblogs.com/clrmas/archive/2010/03/23/1692893.htm
- C++ 类中的静态变量和静态成员函数
- c++静态成员函数和静态变量
- C++ 静态数据成员 成员函数 静态变量 全局变量(2)
- c++ 静态变量 静态成员变量 静态成员函数
- C++ 类中的静态变量和静态成员函数
- C++ 类中的静态变量和静态成员函数
- C++静态成员函数小结
- C++静态成员数据与静态成员函数小结
- C++: 静态成员函数不能访问非静态成员的道理
- C++中的静态数据成员和静态成员函数
- C++:静态成员函数,静态数据成员,成员函数存储方式
- C++: 静态成员函数不能访问非静态成员的道理
- C++静态成员(变量与函数)很容易理解哦!
- C++静态成员函数