zoukankan      html  css  js  c++  java
  • 静态数据成员和静态成员函数

    静态成员函数如何初始化

    #include <iostream>
    using namespace std;
    
    class Test {
    private:
    	static int statica;
    	int b;
    public:
    //	Test(): statica(1) {};		//错误!static数据成员不能通过初始化列表初始化。
    	Test(): b(1) {statica = 1;};	//正确。
    };
    
    int main(void)
    {
    	return 0;
    }
    
    
    
     
     
     
     
    #include <iostream>
    using namespace std;
    
    class Test {
    private:
    	static int statica;
    	int b;
    };
    
    int Test::statica = 1;	//static成员的一般初始化方法。
    
    int main(void)
    {
    	return 0;
    }
    

    如何访问静态数据成员

    静态数据成员是类的数据成员,但不是对象的组成部分。那么在没定义任何对象的情况下,如何读取静态成员的初始值呢?

    (也许会想到用 类名::静态数据成员,但是如果该静态数据成员是private的,那么不能这样访问!)

    答案是通过静态成员函数。

    静态成员函数不含this指针,因此不能直接访问类的非静态数据成员!(可间接通过参数传递对象名访问)

    补充:静态数据成员和静态成员函数可以通过类名访问,也可以通过对象访问。

    如下例子:

    #include <iostream>
    using namespace std;
    
    class Test {
    private:
    	static int statica;
    public:
    	static int getStatica()  //通过静态成员函数访问静态数据成员。
    	{
    		return statica;
    	}
    };
    
    int Test::statica = 1;	
     
    int main(void)
    {
    	cout << Test::getStatica();
    	return 0;
    }
    

    特例static const

    static const 类型的成员可以在类的定义体中初始化。

    #include <iostream>
    using namespace std;
    
    class Test {
    private:
    	const static int consta = 1;
    };
    
    int main(void)
    {
    	return 0;
    }
    
  • 相关阅读:
    java 线程开启 中断
    手写迷你版hashmap
    基于状态机的乐观锁
    Python清空指定文件夹下所有文件的方法
    Python
    python+selenium配置Edge浏览器
    python+selenium怎么获取ul下面最后一个li或ul中有多少个li
    Python Selenium 笔记
    XPath定位时,使用文本的方法小技巧。
    python yield返回多个值
  • 原文地址:https://www.cnblogs.com/helloweworld/p/2833776.html
Copyright © 2011-2022 走看看