Home News

Static члены и методы класса | Обучение программированию онлайн

01.09.2018

видео static члены и методы класса | Обучение программированию онлайн

C#. Статические классы. Урок 39

На этом уроке рассмотрим использование static членов и static методов класса.



Если вам нужно, чтобы переменная-член существовала только в одном экземпляре, ее нужно сделать статической. Грубо говоря, это глобальная переменная в пределах класса. Рассмотрим пример.

#include <iostream> using namespace std; class Test { public: void setValue(int val) { t = val; } int getValue() { return t; } private: static int t; }; int Test::t; void main() { Test test1; test1.setValue(99); cout<<test1.getValue()<<endl; Test test2; cout<<test2.getValue()<<endl; Test test3; cout<<test3.getValue()<<endl; }

Сначала мы создаем private переменную t, которая является статической. Но этого недостаточно, чтобы для нее выделилась память. Поэтому, мы ее определяем еще раз вне класса. Теперь в функции main() мы создаем объект test1 и с помощью метода setValue() задаем начальное значение для нашей переменной. Далее мы создали еще два объекта, вызвали метод getValue() и убедились, что все три объекта работают с одной и той же переменной.


Информатика. Язык С++: static члены класса в С++. Центр онлайн-обучения «Фоксфорд»

Теперь поговорим о static методах. Статические методы можно вызывать без создания объекта. Они не имеют указателя this, а также могут иметь доступ только к статическим членам класса. Рассмотрим пример.

#include <iostream> using namespace std; class Math { public: static double getAvg(int num1, int num2) { return static_cast<double>(num1 + num2) / 2; } }; void main() { cout<<Math::getAvg(7, 6)<<endl; }

В классе Math есть static метод getAvg(), который возвращает среднее арифметическое двух чисел. В функции main() мы вызываем этот метод и передаем туда в качестве аргументов числа 7 и 6. Обратите внимание, что перед методом мы должны указать его принадлежность к классу Math.

Вы можете оставить комментарий ниже.
rss