Форум программистов, компьютерный форум, киберфорум
Наши страницы

Статические поля и методы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Данные записываются в файл некорректно http://www.cyberforum.ru/cpp-beginners/thread842039.html
есть программа "Телефонная книга", все работает, но когда данные записываются в файл в файле помимо основного записывается мусор, как это исправить? вот код //Telephone Directory #include...
C++ Класс-контейнер вектор как в векторе определить является ли сумма элементов простым числом?? http://www.cyberforum.ru/cpp-beginners/thread842037.html
Сравнение чисел в файлах C++
Есть задачка простенькая. Даны два числовых файла одинаковой длины, значения которых упорядочены по возрастанию. Создать третий файл их чисел первых двух так, чтобы упорядоченность не нарушалась....
Почему не правильно работает? Даже в ручную все просчитала, не выходит! C++
Вот такая маленькая программа. Вводится массив символов, нужно записать в отдельный массив числа из этой строки. То есть на входе имеем "5*35-293=" а в массив с должен быть равен с=5; c=35; c=293....
C++ найти корни уравнения методом хорд, бисекции и касательных. http://www.cyberforum.ru/cpp-beginners/thread842018.html
Очень прошу помочь разобраться в коде..Программа уже написана, но я ничего не могу понять..Времени не так много, я пытаюсь что-то разобрать, но выходит слишком медленно. Помогите пожалуйста вашими...
C++ класс StackInt помогите сделать по образцу: #include <iostream> #include <conio.h> #include <windows.h> #include <stdlib.h> using namespace std; // структура, описывающая один узел: struct Node { подробнее

Показать сообщение отдельно
Silvestr1994
27 / 27 / 1
Регистрация: 26.10.2012
Сообщений: 101
18.04.2013, 22:24
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// statdata.cpp
// static class data
#include <iostream>
using namespace std;
////////////////////////////////////////////////////////////////
class foo
   {
   private:
      static int count;   //only one data item for all objects
                          //note: *declaration* only!
   public:
      foo()               //increments count when object created
         { count++; }
      int getcount()      //returns count
         { return count; }
   };
//--------------------------------------------------------------
int foo::count = 0;       //*definition* of count
////////////////////////////////////////////////////////////////
int main()
   {
   foo f1, f2, f3;        //create three objects
 
   cout << "count is " << f1.getcount() << endl;  //each object
   cout << "count is " << f2.getcount() << endl;  //sees the
   cout << "count is " << f3.getcount() << endl;  //same value
   return 0;
   }
Если переменная объявлена как static,то компилятор выделяет ей как и глобальной переменной постоянное место в памяти.Значение этой переменной сохраняется между вызовами блоков программы,в которых она объявлена(нестатические локальные переменные между вызовами ф-ций уничтожаются).
Отличие от глобальной в том,что она доступна только в своём блоке кода(ф-ции или файле).
Применяется,например,при вызовах COLLBACK ф-ций ,которые вызываются при поступлении в приложение сообщений.При этом значения переменных объявленных static,сохраняются.Все другие переменные необходимо заново инициализировать.
Если объявить переменную-член класса как статическую,то компилятор создаст для всех объектов один щбщий экземпляр этой переменной.Эта переменная не будет копироваться для всх объектов данного класса,как это происходит для нестатических членов.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// statfunc.cpp
// static functions and ID numbers for objects
#include <iostream>
using namespace std;
////////////////////////////////////////////////////////////////
class gamma
   {
   private:
      static int total;        //total objects of this class
                               //   (declaration only)
      int id;                  //ID number of this object
   public:
      gamma()                  //no-argument constructor
         {
         total++;              //add another object
         id = total;           //id equals current total
         }
      ~gamma()                 //destructor
         {
         total--;
         cout << "Destroying ID number " << id  << endl;
         }
      static void showtotal()  //static function
         {
         cout << "Total is " << total << endl;
         }
      void showid()            //non-static function
         {
         cout << "ID number is " << id << endl;
         }
   };
//--------------------------------------------------------------
int gamma::total = 0;          //definition of total
////////////////////////////////////////////////////////////////
int main()
   {
   gamma g1;
   gamma::showtotal();
 
   gamma g2, g3;
   gamma::showtotal();
 
   g1.showid();
   g2.showid();
   g3.showid();
   cout << "----------end of program----------\n";
   return 0;
   }
- это статическая функция
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru