类里面的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)

原文链接: https://www.cnblogs.com/lovelyxia/archive/2010/12/19/1910393.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    类里面的static

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/18984

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午7:56
下一篇 2023年2月7日 下午7:56

相关推荐