【总结】C++静态成员函数及测试用例
2016-03-10 23:10
351 查看
1.静态成员函数可以用普通函数指针储存,普通成员函数必须用类函数指针储存
class A { public: static void fun() { cout << "hello world" << endl; } public: void fun2() { } }; int main() { void(*p)() = &A::fun;//用普通函数指针,正确 void (*p1)() = &A::fun2;//用普通函数指针,错误 void(A::*p2)() = &A::fun2;//正确,用类的函数指针 void(A::*p3)() = &A::fun;//错误,静态成员函数用类函数指针 }2.静态成员函数不可以调用非静态成员函数原因有二,其一静态成员函数优于非静态成员函数生成,在编译的时候静态成员函数已经生成,其二静态成员函数不含this指针
class A { public: static void fun() { cout << "hello world" << endl; fun2();//错误,静态成员函数不能调用普通成员函数; } public: void fun2() { fun();//正确,普通成员函数可以调用静态成员函数 } };3.静态成员函数不可以同时声明为 virtual、const、volatile函数。
class A { public: static void fun()const//错误 { cout << "hello world" << endl; } static virtual void fun2()//错误 { } volatile static void fun3()//错误 { } public: void fun2() { } };4.在未创建任何对象时,静态成员函数依旧可以调用
class A { public: static void fun() { cout << "hello world" << endl; } public: void fun2() { } }; int main() { A::fun();//静态成员函数储存在数据段,当类还未实例化是依旧可以调用 return 0; }如有不足,希望指正。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例
- Lua实现split函数
- Lua常用时间函数使用实例
- Lua函数与字符串处理简明总结
- Lua教程(一):在C++中嵌入Lua脚本