zoukankan      html  css  js  c++  java
  • 类里面的static

    #include <iostream>
    using namespace std;
    
    class TestClass{
    private:
    	static int data;
    	int none_static_data;
    public:
    	static void setData(int a_data){
    		data = a_data; 
    	}
    	static int getData(){
    		return data;
    	}
    	void SetData(int a_data){
    		data = a_data;
    	}
    	int GetData(){
    		return data;
    	}
    	static void doSomething(){
    		none_static_data = 1; //error, member not exist
    		SetData(1); //error, //error, member not exist
    	}
    };
    int main(int argc, char *argv[])
    {
    	return 0;
    }
    
    

    C++里面的static修饰的成员,不管是数据还是函数,他都输独立于对象而存在的,对象没有创建的时候它就存在

    换一句话会所,static修饰的成员是不属于任何一个对象的,它是属于类的。注意Object和class 的区别。

    类里面的非static的成员函数在对象没有创建的时候是不能使用的,static的成员可以通过TestClass::来访问。

    因此

    • 非static的成员函数能访问static的变量以及函数
    • static的成员函数不能访问非static的变量和函数,因为对象还没有创建

    static的成员函数类似于delphi中的class function, 在class function中self指针指的不是对象本身,而是类本身,就是TClass(class of TObject)

  • 相关阅读:
    Python列表推导式,字典推导式,元组推导式
    python装饰器@,内嵌函数,闭包
    7-route命令
    6-mv命令
    5-ln链接命令
    4-linux建立用户用户组以及新用户的赋权
    3-gzip压缩解压命令
    2-date命令
    1-cp命令
    UIViewContentMode的各种效果
  • 原文地址:https://www.cnblogs.com/lovelyxia/p/1910393.html
Copyright © 2011-2022 走看看