Использование статической функции-члена в C++

Как преобразовать строку в int в C++ Программирование и разработка

Блок кода, который определяется именем на любом языке программирования, называется функцией. Код функции выполняется, когда функция вызывается в любом месте кода. Можно объявить два типа функций. Одна — обычная функция, а другая — статическая функция-член. Статическая функция-член объявлена ​​для специальной цели. Ключевое слово static используется для объявления статической функции-члена. Этот тип функции может обращаться к другим статическим переменным или функциям только того же класса. Эта функция вызывается с использованием имени класса, в котором объявлена ​​функция. В этом руководстве будет обсуждаться использование статической функции-члена в классе C ++.

Пример 1: Использование простой статической функции-члена

Способ определения простой статической функции-члена в классе C ++ и вызова функции с использованием имени класса показан в следующем примере. Класс со статической функцией-членом с именем Info () определил в коде, что будет печатать простое текстовое сообщение. Функция Info () была вызвана с использованием имени класса без создания объекта класса.

//Include library for I/O
#include<>iostream>

using namespace std;

//Define the class
class UseOfStaticMember
{
public:
//Declare static member function
static void Info()
{
cout << «The static member function is called.\n«;
}
};

int main()
{
//Calling static member function
UseOfStaticMember::Info();
}

Выход:

После выполнения вышеуказанного кода появится следующий вывод:

Способ определения простой статической функции-члена в классе C ++

Пример 2: Распечатайте статическую переменную из статической функции-члена

Способ реализации статической переменной с использованием статической функции-члена класса показан в следующем примере. В коде объявлен класс со стандартной переменной, статической переменной, двумя общедоступными функциями и статической функцией-членом. Функция increment () была определена для увеличения значений обеих переменных. Функция display_val () была определена для печати значения нормальной переменной. Также функция display_static_val () была определена для печати значения статической переменной. Были созданы два объекта класса, и функция increment () была вызвана два раза с использованием этих двух объектов. Затем display_val ()функция была вызвана с использованием второго объекта, а функция display_static_val () была вызвана с использованием имени класса.

//Include library for I/O
#include <iostream>
using namespace std;

//Define the class
class UseOfStaticMember
{
static int static_num;
int normal_num = 0;
public:
//Declare the function to increment the values of the numbers
void increment(){
normal_num++;
static_num++;
}
//Declare the function to display the value of normal_num
void display_val(){
cout << «The current value of normal number = « << normal_num << «\n«;
}
//Declare static member function
static void display_static_val(){
cout << «The current value of static number = « << static_num << «\n«;
}
};

//Declare the static data member
int UseOfStaticMember:: static_num;

int main()
{
//Create the objects of the class
UseOfStaticMember object1, object2;
//Increment the values using the first object
object1.increment();
//Print the values of the normal variable
object1.display_val();

//Increment the values using the second object
object2.increment();
//Print the values of the normal variable
object2.display_val();
//Print the values of the static variable
UseOfStaticMember::display_static_val();
return 0;
}

Выход:

После выполнения вышеуказанного кода появится следующий вывод:

Были созданы два объекта класса, и функция increment () была вызвана два раза

Пример 3: Доступ к статической функции-члену с помощью класса и объекта

В предыдущих двух примерах доступ к статической функции-члену класса осуществлялся с использованием имени класса. В этом руководстве показаны способы доступа к статической функции-члену с использованием как имени класса, так и объекта класса. Далее в коде определен класс с тремя статическими переменными и статической функцией-членом. Статические переменные инициализированы вне класса. Затем статическая функция-член с именем Display () была вызвана напрямую с использованием имени класса и объекта класса.

//Include library for I/O
#include <iostream>
using namespace std;

//Define the class
class UseOfStaticMember
{
private:
//Define the static data members
static string ID;
static string Name;
static int Salary;

public:
//Define the static member function
static void Display()
{
cout <<«ID: « << ID << «\n«;
cout <<«Name: « << Name << «\n«;
cout <<«Salary: « << Salary << «\n«;
}
};

//Initialize the static data members
string UseOfStaticMember :: ID = «673456»;
string UseOfStaticMember :: Name = «Mahmuda Afroz»;
int UseOfStaticMember :: Salary = 70000;

int main()
{
cout<<«Print static memebers using class name:\n«;
UseOfStaticMember::Display();

UseOfStaticMember obj;
cout << «\nPrint static members using object:\n«;
obj.Display();
return 0;
}

Выход:

После выполнения вышеуказанного кода появится следующий вывод:

В предыдущих двух примерах доступ к статической функции-члену класса осуществлялся

Пример 4: Подсчитайте общее количество объектов

Подсчитать и распечатать общее количество объектов класса можно с помощью статической переменной-члена и функции, как показано в следующем примере. В коде определен класс с конструктором, статической переменной и статической функцией-членом. Значение статической переменной инициализируется равным 0. Значение статической переменной будет увеличено на 1, когда будет создан объект класса. Внутри функции main () создаются три объекта класса. Затем была вызвана статическая функция-член для печати общего количества объектов класса.

//Include library for I/O
#include  <iostream>
using namespace std;

//Define the class
class UseOfStaticMember {
//Declare the static data member
static int Counter;

public:
//Declare the Constructor
UseOfStaticMember() {

cout <<«The constructor is called.\n«;
//Increase the value of the static data member
Counter++;
}
static int count_objects()
{
return Counter;

}

};

//Initialize the static member
int UseOfStaticMember::Counter = 0;

int main(void) {

//Create three objects of the class
UseOfStaticMember object1, object2, object3;

//Print the total number of objects created
cout << «Total number of objects: « << UseOfStaticMember::count_objects() << «\n«;

return 0;
}

Выход:

После выполнения вышеуказанного кода появится следующий вывод:

Подсчитать и распечатать общее количество объектов класса можно с помощью статической переменной-члена и функции

Заключение

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

Читайте также:  Heap Sort C++
Оцените статью
bestprogrammer.ru
Добавить комментарий