注意:本学习笔记来自网易云课堂学习

Static

C++学习12静态成员变量和静态函数

Static的一个函数里的量,就相当于是全局变量,只不过只有在这个函数里才能使用这个量

Static 的是函数里的一个类的话,这个类在第一次进这个函数的时候被初始化。这个对象的存储是全局化的这个变量只有在程序结束的时候才发生析构(全局变量的初始化如果在不同CPP里是不知道谁先编译的,所以如果一个变量的值依赖另一个值,那么就会有问题,解决办法是所有全局变量尽量写在一个文件.cpp中)。计算机的一切都是人想出来的,那么怎样只让这个变量只做一次初始化呢?

void f()

{

static X my_X(10,20);

}

C++中是否有个隐含的成员,用来表示是否这个对象被初始化了。

Hidden:对类来说用private

Persistent:函数之间存在的东西,全局变量。

对于一个对象,对象之间存在的东西。不随着对象的不同而不同。

 

Static member静态的成员变量

在所有对象中都保持一致。

Eg:

这样的话error,因为i只是声明不是定义。

要加一句int A::i;定义

 C++学习12静态成员变量和静态函数

如果一个类有static变量,那么你一定要.cpp去定义它,如下int A::i,注意这int前不要写static,因为这个成员是可以在别的地方被访问的,不是只在这个.cpp中,所以int前不要加static。可以在int A::i=1;只能在定义的时候赋值。不能在构造函数列表里赋值。

---------------------------------------------】

静态的成员函数

Class A

{

Public:

A(){}

Static void say(int ii)

{

Cout<<ii<<k<<endl;//错误,在静态的成员函数中不能访问非静态的成员变量

//静态的成员函数

Cout<<ii<<this_>i<<endl;//错,静态的函数是调用是A::say没有对象,所以不能用this,所以所有非静态的成员变量都不能访问

}

Private:

Int k;

Static int I;

}

 

 

 


相关文章:

  • 2021-12-14
  • 2021-08-23
  • 2022-12-23
  • 2021-08-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
  • 2021-11-30
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-03-07
  • 2018-03-19
  • 2022-01-30
  • 2022-12-23
相关资源
相似解决方案