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

Проблемы с конструктором (вроде) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разряженная матрица http://www.cyberforum.ru/cpp-beginners/thread650135.html
Экономное использование памяти предусматривает, что для тех элементов матрицы, в которых наверняка содержатся нули, память выделяться не будет. Поскольку при этом нарушается двумерная структура матрицы, она может быть представлена в памяти как одномерный массив, но при обращении к элементам матрицы пользователь имеет возможность обращаться к элементу по двум индексам. в матрице все нулевые...
C++ Чтение из файла read и rdbuf Всем доброго дня! Не могу понять почему при использовании функции read() появляются какие-то кракозябры, хотя при использовании rdbuf() все отрабатывается нормально. Скрин выполнения программы во вложении. Вот код: #include<iostream> #include<fstream> #include<windows.h> using namespace std; int main(int argc, char* argv) http://www.cyberforum.ru/cpp-beginners/thread650121.html
C++ Использованием классов для создания массива
Здравствуйте.Подскажите как правильно можно передать созданный массив из void matrix::cmatrix(int x,int y) в другие функции класса matrix. class matrix { public: void cmatrix(int,int); void fillMatrix(int**,int,int,int); }; void matrix::cmatrix(int x,int y)
Как выделяется память под массив string? C++
В общем читаю книжку, там объявлены два массива int* p = new int, int* v = new string... бла бла бла ....а потом -> ...После резервирования области памяти, предназначенной для хранения объектов...и тут загвоздка, ну с integer все понятно, а как выделяется под string память? я же могу ввести один символ "а"\0 а могу целый файл туда в string затолкать, строк эдак на 1000 ....куда бедный указатель...
C++ Чтения файла в динамический массив http://www.cyberforum.ru/cpp-beginners/thread650065.html
Добрый день. Файл состоит из 6 столбцов и миллионов рядков. Нужно прочесть все это в динамический массив, проблема заключается в том что файл весит очень много(больше 3 гб). Как можно осуществить подобное?
C++ Скопировать двумерный массив в vector Добрый день всем. подскажите пожалуйста, как скопировать двумерный массив в vector? int i = {0}; vector<vector<int> > _v; _v = i; // Не работает. Есть идеи? весь день колупаюсь. и copy делаю и всё что угодно, в итоге одни ошибки компилятора. Помогите плиз. подробнее

Показать сообщение отдельно
unkarjedy
3 / 3 / 0
Регистрация: 13.03.2011
Сообщений: 114
11.09.2012, 16:42  [ТС]     Проблемы с конструктором (вроде)
Спасибо.

Добавлено через 5 минут
Можно ещё уточнение: если я только объвил шаблон класса List а определяю его чуть ниже(чтобы было более "смотрибельно") :

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
template <class T> class List
{
  Elem<T> *first; //pointer to the begining of the list
public:
  List<T> ();
  ~List<T> ();
 
  Elem<T>* getFirst ();
  Elem<T>* getNext (Elem<T> *e);
  
  T *getData (Elem<T> *e);
  
  bool empty (){
    return first == 0;
  }
 
  void add (T *t);
  void insert (T *t, Elem<T> *e);
  void removeNext (Elem<T> *e);
  void remove (Elem<T> *e);
};
 
//Elem<T> ==========================================
Elem<class T>::Elem<T> (){
  data = 0;
  next = NULL;
}
Elem<class T>::Elem<T> (T *t){
  data = t;
  next = NULL;
}
Elem<class T>::Elem<T> (T *t, Elem *n){
   data = t;
   next = n;
}
 
//List<T> ==========================================
List<class T>::List<T> (){
  first = NULL;
}
List<class T>::~List<T> (){
  if (empty ()) return;
 
  Elem<T> *t = first;
 
  while (t) {
    Elem<T>* tmp = t->next;
    delete t;
    t = tmp;
  }
}
 
 
inline Elem<T>* List<class T>::getFirst (){
  return first;
}
inline Elem<T>* List<class T>::getNext (Elem<T> *e){
  return e->next;
}
 
inline T* List<class T>::getData (Elem<T> *e){
  return e->data;
}
 
void List<class T>::add (T *t){
  if (empty ()){
    Elem<T> *pe = new Elem<T> (t);
    first = pe;
  } else {
    Elem<T> *pe = new Elem<T> (t, first);
    if (!pe){
      cerr<<"Memory shortage!";
      exit(-1);
    }
 
    first = pe;
  }
}
void List<class T>::insert (T *t, Elem<T> *e){
  Elem<T> *tmp = new Elem<T>(t);
  if (!tmp){
      cerr<<"Memory shortage!";
      exit(-1);
  }
  tmp->next = e->next;
  e->next = tmp;
}
void List<class T>::removeNext (Elem<T> *e){
  if(empty()) return;
  Elem<T> *tmp = e->next;
  delete tmp;
}
 
//removes "e" element of the List
//uses "trick" - the element does not removes
//it's content is copied with the content of next element
//and than the next element is deleted
void List<class T>::remove (Elem<T> *e){
  if(empty()) return;
 
  Elem<T> *tmp = e->next;
  e->data = e->next->data;
  e->next = e->next->next;
  delete tmp;
}

то вылазит куча предупреждений к каждому из объявлений, наподобие:

warning C4812: obsolete declaration style: please use 'Elem<T>::Elem' instead

То есть я пишу:

Elem<class T>::Elem... и он ругается на это. Как быть?
 
Текущее время: 04:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru