小结下C++中静态函数与成员
来源:互联网 发布:如何自学成为sql工程师 编辑:程序博客网 时间:2024/05/16 17:49
#include<iostream>using namespace std;class Point{public:Point(int x=0,int y=0):x(x),y(y){count++;}Point(Point &p){x=p.x;y=p.y;count++;}~Point(){ count--;}int GetX(){ return x;}int GetY(){ return y;}static void showCount(){cout<<"object count="<<count<<endl;//cout<<x<<endl; //静态成员函数不可访问非静态类的私有成员} //error C2597: illegal reference to data member 'Point::x' in a static member functionvoid print(){cout<<x<<y<<count<<endl; //常成员函数可访问类中静态成员}private:int x,y;static int count;};int Point::count=0; //静态成员变量的申明只能在类外 类中定义报错 int main(){Point a(4,5);cout<<"Point A:"<<a.GetX()<<","<<a.GetY();//a.showCount(); //可通过对象访问静态成员函数Point::showCount();Point b(a);cout<<"Point B:"<<b.GetX()<<","<<b.GetY();Point::showCount();b.print();return 0;}
1.静态函数与常量函数(这里只经过了vc6.0的测试通过)
对于静态函数只能访问类中的静态成员函数,而对于非静态成员则不能访问,类外可以通过类名而不是对象(测试中对象也可以调用)调用静态成员函数!
而对于非静态成员函数,在类中可以调用非静态私有成员,但是不能使用静态成员。
2.静态成员与非静态成员
静态成员的初始化不能在类的构造函数中,而需要在类外初始化,静态成员是属于整个类的。
补充: 关于const 在指针前后的区别
#include<iostream>using namespace std;int main(int argc,char* argv[]){int a=1,b=2;const int *p;int *const pc=&b; // must define in this linep=&a; // pc=&b; //test p , a and *pp=&b;a=2; //*p=b; rror C2166: l-value specifies const object //test pc ,b and *pc //pc=&a; error C2166: l-value specifies const object*pc=b;cout<<*p<<'\n'<<*pc<<endl;return 0;}
- 小结下C++中静态函数与成员
- 【C++】静态成员函数小结
- [转载]C++中静态成员数据与静态成员函数小结
- C++静态成员与静态成员函数小结
- C++静态成员数据与静态成员函数小结
- C++静态成员与静态成员函数小结 (转载)
- C++静态成员与静态成员函数小结
- 静态成员函数小结
- c++:静态函数成员与静态数据成员
- 3-6 静态数据成员与静态成员函数(c++)
- C++静态成员函数、静态成员小结
- C++中静态成员变量与静态成员函数
- C++静态成员函数小结
- C++静态成员函数小结
- C++静态成员函数小结
- C++静态成员函数小结
- C++静态成员函数小结
- C++静态成员函数小结
- fedora nfs
- Use Alt/Meta In a Terminal
- Java的垃圾回收机制详解和调优
- 3个故事看穿了很多人
- 虫虫 HTML5::初学者使用 Application Cache 指南
- 小结下C++中静态函数与成员
- 原始套接口基础知识
- 有限状态机理解小例子
- Hibernate的基本标签和映射
- Linux GPIO驱动相关笔记
- 循序渐进学编程
- 验证码识别3
- VC++为工具栏添加按钮
- npm设置http代理