• 对类的静态成员的访问不依赖于对象
  • 可以用普通的指针来指向和访问静态成员
例:
#include <iostream>
using namespace std;
class point
{
    public:
        point(int xx=0, int yy=0)
        {
            X   = xx;
            Y   = yy;
            countP++;
        }
        point(point &p);    //拷贝构造函数
        int getX()
        {
            return X;
        }
        int getY()
        {
            return Y;
        }
        static int countP;
    private:
        int X, Y;
};

point::point(point &p)
{
    X   = p.X;
    Y   = p.Y;
    countP++;
}

int point::countP=0;    //静态数据成员定义性说明

int main()
{
    //声明一个int型指针,指向类的静态成员
    int *count  = &point::countP;

point A(5, 6);

cout << "point A, " << A.getX() << " ," << A.getY() << endl;

//直接通过指针访问静态数据成员

cout << "object id = " << *count << endl;

point B(A); //声明对象B

cout << "point B, " << B.getX() << " ," << B.getY() << endl;

//直接通过指针访问静态数据成员

cout << "object id = " << *count << endl;

return 0;
}

例二:
#include <iostream>

using namespace std;

class Point
{
    public:
        static void getC()  // <== 静态函数成员
        {
            cout << "object id = " << countP << endl;
        }
        Point(int x, int y)
        {
            X   = x;
            Y   = y;
        }
        int getX()
        {
            return X;
        }
        int getY()
        {
            return Y;
        }
        Point(Point &p);
    private:
        int X, Y;
        static int countP;  // <== 静态成员变量,引用性说明
};

Point::Point(Point &p)
{
    X   = p.X;
    Y   = p.Y;
    countP++;
}

int Point::countP   = 0;    // <== 静态数据成员定义性说明

int main()
{
    void (*gc)()    = Point::getC;

Point A(5, 8);

cout << "Point A, " << A.getX() << ", " << A.getY() << endl;

(*gc)();                // <=== 打印出来静态成员的值
    Point B(A);

cout << "Point B, " << B.getX() << ", " << B.getY() << endl;

return 0;
}

c++ 指向类的静态成员的指针相关推荐

  1. 函数指针指向类的静态成员函数

    转载:http://www.cnblogs.com/dongyanxia1000/p/4906592.html 1. 代码 1 #include<iostream> 2 #include& ...

  2. C++的静态成员函数指针

    http://blog.csdn.net/sky453589103/article/details/47276789 先简单的说说非静态的成员函数. 非静态成员函数指针的类型: 类的非静态成员是和类的 ...

  3. C++静态成员函数指针

    C++的静态成员函数指针 先简单的说说非静态的成员函数. 非静态成员函数指针的类型: 类的非静态成员是和类的对象相关的.也就是说,要通过类的对象来访问变量. 成员函数的类型定义为: typedef v ...

  4. 指向类成员/函数的指针

    C++扩展了指针在类中的使用,使其可以指向类成员,这种行为是类层面的,而不是对象层面的. 指向类成员/函数的指针的本质并不是取地址.而是利用了对象地址的偏移量 我们创建了一个类,假设我们要使用指针指向 ...

  5. 类的成员函数指针和静态成员函数指针 调用成员函数***

    C++提供static这个关键词对静态成员进行声明,静态成员函数和类的实例化无关,对于同一类来说,静态成员函数是所有类的对象共享的.而普通成员函数需要实例化才能调用,对于每一个实例来说,普通成员函数是 ...

  6. 指向类成员函数的指针(学自王桂林)

    指向类成员函数的函数指针数组(实现更隐蔽的接口): 加减乘除: #include<iostream> using namespace std;class Widget {public:Wi ...

  7. 【C++】 指向类的指针 指向类的对象 对象指针 函数指针 引用

    文章目录 C++类的对象和类的指针的区别 指向地址的指针 指针本身的大小 指向数组的指针 指针数组 指向指针数组的指针 多维指针数组 函数参数中使用指针 数组指针传址实现数组求和 函数指针 模仿C++ ...

  8. 恼人的函数指针(二)

    原文链接:http://www.cnblogs.com/AnnieKim/archive/2011/12/04/2275589.html 前面曾写过一篇恼人的函数指针(一).总结了普通函数指针的声明. ...

  9. C++中类成员函数指针使用方法

    1. 指向类非静态成员的函数指针 声明: 指向类的成员函数的指针需要在指针前面加上类的类型,格式为: typedef 返回值 (类名::*指针类型名)(参数列表); 赋值: 需要用类的成员函数地址赋值 ...

最新文章

  1. Ajax与企业级应用开发
  2. 3.7 PPP协议和HDLC协议
  3. 网工协议基础(3) IP地址
  4. 跨系统服务器data,跨服务器的数据整合方法及系统 Cross-server data integration method and system...
  5. EXCEL 绘制斜线表头
  6. Android Multimedia框架总结(七)C++中MediaPlayer的C/S架构补充及MediaService介绍
  7. 基于SIR模型的疫情预测 matlab
  8. matlab机器人画圆轨迹规划
  9. 同态滤波及matlab实现,怎样用MATLAB的图像处理功能进行同态滤波
  10. Maven第9篇:多环境构建
  11. solidworks启动慢的原因在这里
  12. Java根据纯真IP库获取具体的地址信息
  13. django框架使用pdf.js 使用说明
  14. 图数据库ONgDB Release v-1.0.0
  15. Pytorch的nn.Conv2d()参数详解
  16. IDEA实现单元测试
  17. c语言发牌器(斗地主)
  18. opengl 贴图教程_如何使用叶贴图可视化空气污染-深入教程
  19. java slf4j日志级别_SLF4J日志级别以及使用场景
  20. 基于百度AI平台的语音识别功能开发-SDK调用

热门文章

  1. 程序员吐槽_阿里程序员回老家被哥们吐槽,破IT就破IT,还阿里巴巴
  2. sqoop2 java api实现_Sqoop2 Java客户端API指南
  3. 深度优先遍历 java
  4. liferay 调用ajax
  5. 手机端网站底部悬浮 广告代码 代关闭_网站被劫持,网站被劫持了应该怎么办?怎么解决网站被劫持?...
  6. 【Nutch2.2.1基础教程之2.2】集成Nutch/Hbase/Solr构建搜索引擎之二:内容分析
  7. scala不使用new关键字创建对象实例
  8. Spark创建DataFrame的三种方法
  9. Linux上的TIME_WAIT和tcp_fin_timeout
  10. 机器学习基础——实现基本的决策树