1. 将非静态方法变为静态方法 这是一种比较容易实现的方法。如果你的非静态方法没有使用任何属于对象的...
(1)在修饰变量的时候,static 修饰的静态局部变量只执行初始化一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。 (2)static 修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是 extern 外部声明也不可以。 (3)static 修饰一个函数,则这个函数的只能在本文件中调用,不能...
#include <iostream>usingnamespacestd;classBase{public:staticintval1;intval2;staticvoidfunc1(){//val2 = 10;//静态成员函数访问非静态成员变量,编译会报错val1 =10;//只能访问静态成员cout <<"func1()"<<endl; }private:staticvoidfunc2(){ cout<<"func2()"<<endl; } };intBase::val1(1);int...
1.静态成员之间可以相互访问,包括静态成员函数访问静态数据成员和访问静态成员函数; 2.非静态成员函数可以任意地访问静态成员函数和静态数据成员; 3.静态成员函数不能访问非静态成员函数和非静态数据成员; 4.调用静态成员函数,可以用成员访问操作符(.)和(->)为一个类的对象或指向类对象的指针调用静态成员函数,也可以...
(1)静态成员函数中不能调用非静态成员。 (2)非静态成员函数中可以调用静态成员。因为静态成员属于类本身,在类的对象产生之前就已经存在了,所以在非静态成员函数中是可以调用静态成员的。 (3)静态成员变量使用前必须先初始化(如int MyClass::m_nNumber = 0;),否则会在linker时出错。
类成员数据/函数:数据唯一性( ONLY CPP) 此作用是C++对static关键字的重用。主要针对类里静态成员数据/成员函数。 在这里面, static既不是限定作用域的, 也不是扩展生存期的作用, 而是指成员变量/函数在此类中的唯一性。 表示static成员变量和函数属于一个类而不是属于此类的任何特定对象的变量和函数. 这是与...
1. 局部变量 普通局部变量是再熟悉不过的变量了,在任何一个函数内部定义的变量(不加static修饰符)都属于这个范畴。编译器一般不对普通局部变量进行初始化,也就是说它的值在初始时是不确定的,除非对其显式赋值。 普通局部变量存储于进程栈空间,使用完毕会立即释放。
静态函数出现在类里的称为静态成员函数: 类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问,类的静态成员函数不会访问或者修改任何对象(非static)数据成员。类的非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实...
在C++中,静态变量可以成为类的数据成员。与非静态数据成员不同,每个对象都有一个副本,静态数据成员是类的一部分,只存在一个副本,被所有对象所共享。即使没有实例化对象,静态成员变量也可以使用,通过"类名::静态成员变量"的方式访问。 2. 静态成员函数
+ 函数名 s.Display(); 3.3 注意 非静态成员函数中有this指针,但静态成员函数中没有。 静态成员函数中只能使用静态成员变量,不能使用非静态成员变量。 在之前的代码中加入静态成员函数的使用,代码如下: #include <iostream> #include <string> using namespace std; class Student { public: Student() { m_id...