Форум программистов, компьютерный форум 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 делаю и всё что угодно, в итоге одни ошибки компилятора. Помогите плиз. подробнее

Показать сообщение отдельно
Andsteadur
152 / 136 / 3
Регистрация: 23.05.2009
Сообщений: 275
11.09.2012, 15:27     Проблемы с конструктором (вроде)
Не определен деструктор класса Notebook и определение шаблона должно быть в файле, где он объявлен. Итого:

list.h
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
114
115
116
117
#pragma once
#include <iostream>
 
template <class T> class List;
 
 
template <class T>  class Elem 
{
    friend class List<T>;
    T *data;
    Elem<T> *next;
public:
    Elem<T>  ()
    {
        data = 0;
        next = NULL;
    };
 
    Elem<T>  (T *t)
    {
        data = t;
        next = NULL;
    };
 
    Elem<T>  (T *t, Elem<T> *n)
    {
        data = t;
        next = n;
    };
};
 
 
template <class T> class List
{
    Elem<T> *first; //pointer to the begining of the list
public:
    List<T> ()
    {
        first = NULL;
    };
 
    ~List<T> ()
    {
        if (empty ()) return;
 
        Elem<T> *t = first;
 
        while (t) {
            Elem<T>* tmp = t->next;
            delete t;
            t = tmp;
        }
    };
 
    Elem<T>* getFirst ()
    {
        return first;
    };
 
    Elem<T>* getNext (Elem<T> *e)
    {
        return e->next;
    };
 
    T *getData (Elem<T> *e)
    {
        return e->data;
    };
 
    bool empty (){
        return first == 0;
    };
 
    void 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 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 removeNext (Elem<T> *e)
    {
        if(empty()) return;
        Elem<T> *tmp = e->next;
        delete tmp;
    };
 
    void remove (Elem<T> *e)
    {
        if(empty()) return;
 
        Elem<T> *tmp = e->next;
        e->data = e->next->data;
        e->next = e->next->next;
        delete tmp;
    };
};


notebook.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
include "list.h"
#include <string>
 
using std::string;
 
struct sName {
    string first;
    string second;
    string father;
    sName(string s1, string s2, string s3):first(s1), second(s2), father(s3){}
};
 
class Notebook
{
private:
    List<int> records;//();
public:
    Notebook();
    ~Notebook();
};
 
Notebook::Notebook(){}
Notebook::~Notebook(){}


C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include "notebook.h"
 
int main (int argc, char* argv[])
{
  Notebook notebook_1;
 
  return 0;
}
 
Текущее время: 14:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru