Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Данные записываются в файл некорректно http://www.cyberforum.ru/cpp-beginners/thread842039.html
есть программа "Телефонная книга", все работает, но когда данные записываются в файл в файле помимо основного записывается мусор, как это исправить? вот код //Telephone Directory #include <iostream> #include <fstream> #include <string> #include <iomanip> #include <conio.h>
C++ Класс-контейнер вектор как в векторе определить является ли сумма элементов простым числом?? http://www.cyberforum.ru/cpp-beginners/thread842037.html
Сравнение чисел в файлах C++
Есть задачка простенькая. Даны два числовых файла одинаковой длины, значения которых упорядочены по возрастанию. Создать третий файл их чисел первых двух так, чтобы упорядоченность не нарушалась. Массивы и сортировку не использовать. У меня в первом файле 3 5 7 8 9, а во втором 0 2 4 5 6. Вот как сравнить эти значения я не пойму. Перепробовал что думал, больше не знаю. #include <fstream.h>...
Почему не правильно работает? Даже в ручную все просчитала, не выходит! C++
Вот такая маленькая программа. Вводится массив символов, нужно записать в отдельный массив числа из этой строки. То есть на входе имеем "5*35-293=" а в массив с должен быть равен с=5; c=35; c=293. Вроде все по коду вручную посчитала, а ничего не вышло: #include <cstdlib> #include <iostream> #include <conio.h> using namespace std; int main() {char a; int i,j,one,two,c;
C++ найти корни уравнения методом хорд, бисекции и касательных. http://www.cyberforum.ru/cpp-beginners/thread842018.html
Очень прошу помочь разобраться в коде..Программа уже написана, но я ничего не могу понять..Времени не так много, я пытаюсь что-то разобрать, но выходит слишком медленно. Помогите пожалуйста вашими знаниями.. Нужно найти корни уравнения методом хорд, бисекции и касательных. /* x^5-2x^4-4x^3+2x+6=0 */ #include <conio.h> #include <stdio.h> #include <math.h> double f(double x);
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;
   }
- это статическая функция
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru