有关C++中static关键词的用法总结

Hi!
C中的static关键字主要是为了让变量或函数只在某一文件内使用。而在C++中有命名空间的概念,自然也不需要这样。它的用处一般来说,主要用于类成员变量和成员函数。

struct steady {
    int iop;
    static int jkl;
    int bnm() { return 3; }
    static int okm(){ return ijn++ + 3; }
    //static int uhb(){ return iop; }  你不能这么做
private:
    static int ijn;
};
int steady::jkl = 17, steady::ijn = 1945;

上述代码简单演示了一下静态成员的用法。

-静态成员变量可以看做为类的基本属性
-可以通过类名直接访问公有静态成员变量
-静态成员变量需要在类外单独分配空间
-静态成员变量在程序内部位于全局数据区

但有一个问题没有解决:能对静态成员变量操作的成员函数,必须定义对象之后才能使用。
刚好静态成员函数可以解决这个问题。

-静态成员函数是类的一个特殊的成员函数
-静态成员函数属于整个类所有,没有this指针
-静态成员函数只能直接访问静态成员变量和函数(因为不同对象的普通变量可能不同或不存在,在所有对象外调用时会出现矛盾)
-可以通过类名直接访问类的公有静态成员函数
-可以通过对象名访问类的公有静态成员函数
-定义静态成员函数,直接使用static关键字修饰

基于面向百度编程,我查到了单例设计模式和二阶构造都需要用到静态成员。
(无意中发现了新知识)
过两天我会针对这两个写新的总结的。

一个半月后的更新:总结?什么总结?总结是什么?(装傻.jpg

发表评论

邮箱地址不会被公开。