zoukankan      html  css  js  c++  java
  • 类的静态(数据和函数)成员[C++Primer]

    静态数据成员:

    1.静态数据成员实际上是类域中的全局变量。

    2.静态数据成员的初始化在主函数调用之前,并且不能在类的声明中出现。

    3.静态数据成员的状态并不会随着一个新的对象的新建而重新定义。

    4.静态数据成员的使用应该是类名称加区域分隔符加静态成员名称的,虽然我们仍然可以使用对象名加点操作符号加成员名称的方式使用,但是不推荐的,静态态类成员的特性就是属      于类而不专属于某一个对象

    5.不要试图在头文件中定义(初始化)静态数据成员。在大多数的情况下,这样做会引起重复定义这样的错误。即使加上#ifndef #define #endif或者#pragma once也不行。 

    6.静态数据成员被 类 的所有对象所共享,包括该类派生类的对象。即派生类对象与基类对象共享基类的静态数据成员。

    派生类对象与基类对象共享基类的静态数据成员。
     1 class base{ 
     2 public : 
     3 static int _num;//声明 
     4 }; 
     5 int base::_num=0;//静态数据成员的真正定义 
     6 
     7 class derived:public base{ 
     8 }; 
     9 
    10 main() 
    11 { 
    12 base a; 
    13 derived b; 
    14 a._num++; 
    15 cout<<"base class static data number _num is"<<a._num<<endl; 
    16 b._num++; 
    17 cout<<"derived class static data number _num is"<<b._num<<endl; 
    18 } 
    19 // 结果为1,2;可见派生类与基类共用一个静态数据成员。 

    7.静态数据成员可以成为成员函数的可选参数,普通数据成员则不行。

    8.静态数据成员的类型可以是所属类的类型,普通的成员则不行,普通成员只可以是所属类的指针或者引用。

    class base{ 
    public : 
    static base _object1;//正确,静态数据成员 
    base _object2;//错误 
    base *pObject;//正确,指针 
    base &mObject;//正确,引用 
    }; 

    静态成员函数:

    1.静态函数地址可以用普通函数指针存储,普通函数成员地址必须由类成员函数指针存储。

    1 class base{ 
    2 static int func1(); 
    3 int func2(); 
    4 }; 
    5 
    6 int (*pf1)()=&base::func1;//普通的函数指针 
    7 int (base::*pf2)()=&base::func2;//成员函数指针 

    2.静态成员函数属于类,没有this指针,所以不可以调用类的非静态成员。

    3.静态成员函数不可以同时声明为const  virtual  volatile。

    1 class base{ 
    2 virtual static void func1();//错误 
    3 static void func2() const;//错误 
    4 static void func3() volatile;//错误 
    5 }; 

    1) const修饰符用于表示函数不能修改成员变量的值,该函数必须是含有this指针的类成员函数

    2)静态成员函数, 可以不通过 对象来调用,也即没有隐藏的this指针。

        virtual函数一定要通过对象来调用,即有隐藏的this指针。

    原文链接:http://www.cnblogs.com/cy568searchx/archive/2013/03/12/2955701.html

  • 相关阅读:
    阿里云服务器的带宽计费问题
    命令行方式完成本地新建项目代码上传至git远程服务器仓库
    npm——web前端的maven
    vue-cli开发todoList
    vue开发环境搭建
    列表转树形结构
    内部类的创建
    C# 解析html 的工具库
    论亲密关系走向破碎的驱动力
    截图函数
  • 原文地址:https://www.cnblogs.com/cy568searchx/p/2995407.html
Copyright © 2011-2022 走看看