Инструменты пользователя

Инструменты сайта


статические_члены_класса

Назад

Переменные и члены класса, объявленные с модификатором доступа static, называются статическими членами класса. Cтатические переменные и методы доступны без создания объекта данного класса. Имя статической переменной квалифицируется именем класса с использованием операции принадлежности :: , а не именем экземпляра класса.

class A 
{ 
public: 
static int stat;
};
void main() 
{
    A::stat = 123;
}

Особености:

  • Статические методы могут вызывать и использовать только другие статические методы и статические переменные.
  • Статическую переменную можно рассматривать как аналог глобальной переменной, которая связана с конкретным классом.
  • Cтатическе методы не получают указатель this.
  • Статические методы могут вызывать только статические методы .(Либо не статические если передается сылка или указать на объект класса )
  • Статические методы имеют доступ к закрытым и защищенным полям класса через экземпляры класса.
  • Доступ к статическим методам и классам осуществляется по имени класса создовать экзимпляр не требуется
#include <iostream>
using namespace std;
class CBank
{
private:
	static int balans;
public:
	static int Set (int k)
	{
		return balans+=k;
	}
	static int & Get()
	{
		return balans;
	}
	static void Show()
	{
		cout<<balans<<endl;
	}
 
};
int CBank::balans=100000;
void main ()
{
	CBank::Show();
	CBank f1;
	f1.Show();
	CBank f2;
	f2.Get()-=1000;//=f2.Get()-50;
	f2.Show();
	f1.Show();
	f2.Set(50);
	f2.Show();
	f1.Show();
}