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

Что за входным параметром DynamicArray(long s = 10): size(s), count(0)? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ сумма ряда 1,3,5,7 http://www.cyberforum.ru/cpp-beginners/thread777752.html
# include <stdio.h> # include <conio.h> #include <iomanip> int main () { setlocale(LC_ALL,"Russian"); int i,n,s=0; printf ("\n Введите количество первых нечетных чисел которые необходимо просумировать n=\n"); scanf ("%d",&n);
C++ функция для нахождения длины связного списка Помогите написать функцию для нахождения длины связного списка. реализуйте функцию итеративно и рекурсивно. getLength (NULL) должен возвращать 0. class List { public: int value; List* next; }; int getLength(List* list) http://www.cyberforum.ru/cpp-beginners/thread777747.html
Утечка памяти. Как ее побороть? C++
void Player::add() { Ship *bombers; bombers = new Bomber; for(int i=0; i<num_bombers; i++) { Bomber temp(7, 40, 1, 1); bombers = temp; };
Устаревшие стандарты C++
Всем доброго вечера! В ходе пятидневного экспресс-обучения С++ столкнулась с проблемой, которую нужно решить в самые краткие сроки, а именно сегодня, так как завтра уже судный день. В моём наличии учебное пособие, датированное 2003 годом, поэтому синтаксис многого - особенно директив препроцессора, ух и намучилась я с ними! - устаревший. Я понимаю, что не вполне корректно формулирую...
C++ класс учитель http://www.cyberforum.ru/cpp-beginners/thread777734.html
создать простой класс, используя свойство инкапсуляции данных, и обращение к объектам этого класса напрямую и через указатель.
C++ Кто подскажет? Народ у меня возникла проблема связанная с доверием к девушке, мне кажется что она со мной не до конца честна и суть вопроса состоит в том что можно ли написать на С++ программку для изъятия паролей и истории из браузера? Если на С++ нельзя то на каком языке можно, и если не трудно подскажите как. Заранее благодарен! подробнее

Показать сообщение отдельно
evil0o
5 / 5 / 0
Регистрация: 04.07.2010
Сообщений: 200
02.02.2013, 23:53     Что за входным параметром DynamicArray(long s = 10): size(s), count(0)?
: size(s), count(0) объясните что это ?

C++
1
2
3
4
5
6
  //конструкторы
      DynamicArray(long s = 10): size(s), count(0) {   //<=======================что это?
          p = new T[size];
          if(!p)
             cout << "Ошибка при создании массива" << endl;
      }
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
template<class T>
class DynamicArray {
      long size;               //размер массива
      long count;              //количество элементов в массиве
      T* p;                    //указатель на начало массива
 
  public:
      //конструкторы
      DynamicArray(long s = 10): size(s), count(0) {
          p = new T[size];
          if(!p)
             cout << "Ошибка при создании массива" << endl;
      }
      DynamicArray(const DynamicArray& arr);    //конструктор копирования
 
      //деструктор
      ~DynamicArray() {
          if(p) delete[] p;
      }
 
      //функции
      void add(T x);                  //прибавить элемент в конец массива
      void remove();                          //удалить последний элемент
      long length() const {return size;}                 //длина массива
      void print() const;                                //вывод на экран
 
      //операторы
      DynamicArray& operator=(const DynamicArray& arr);  //присваивание
      T operator [] (long i) const;                      //индексация
      DynamicArray& operator+(const DynamicArray& arr);  //сложение
};
 Реализация функций и операторов: 
 
//копирующий конструктор
template<class T>
DynamicArray<T>::DynamicArray(const DynamicArray& arr) {
    size = arr.size;
    count = arr.count;
    p = new T[size];
    for(int i = 0; i<count; ++i)
        p[i] = arr.p[i];
}
 Здесь возвращаем значение по ссылке, чтобы можно было строить цепочку присваиваний: 
 
template<class T>
DynamicArray<T>&        
DynamicArray<T>::operator=(const DynamicArray& arr)
      if(this != &arr) {       //чтобы избежать присваивания самому себе
         size = arr.size;
         count = arr.count;
         if(p) delete[] p;
         p = new T[size];
         for(int i = 0; i<count; ++i) 
            p[i] = arr.p[i];
 
     }
     return *this;
}
 
template<class T>
T DynamicArray<T>::operator[](long i) const {
    if(i < size && i)
        return p[i-1];
    else
        cout << "Неправильный индекс" << endl;
    return 0;
}
 
template<class T>
DynamicArray<T>& 
DynamicArray<T>::operator+(const DynamicArray& arr) {
    DynamicArray temp(*this);  //сохраняем значения во временном массиве
    if(p) delete[] p;
    size += arr.size;
    count += arr.count;
    p = new T[size];
    for(int i = 0; i<temp.count; ++i)
         p[i] = temp.p[i];
    for(int i = 0; i<arr.count; ++i)
         p[temp.count + i] = arr.p[i];
    return *this;
}
 
template<class T>
void DynamicArray<T>::print() const {
    cout << "The array contains:" << endl;
    for(int i = 0; i<count; ++i)        
         cout << p[i] << ' ';
    cout << endl;
}
 
template<class T>
void DynamicArray<T>::add(T x) {
    if(count >= size) {
        //увеличиваем размер массива       
        DynamicArray temp(*this);
        if(p) delete[] p;
        size += 10;
        p = new T[size];
        for(int i = 0; i<temp.count; ++i)
            p[i] = temp.p[i];
    }
    p[count++] = x;           //прибавить элемент в конец массива
}
 
template<class T>
void DynamicArray<T>::remove() {
   if(count)
       p[--count] = 0;    //удалить последний элемент (если массив
                          //не пустой)
   else
       cout << "Массив пуст" << endl;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru