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

Реализация класса контейнер. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ запись структуры в файл и чтение из неё http://www.cyberforum.ru/cpp-beginners/thread318553.html
Здравствуйте! Вот пришлось как-то так на С++ сделать такую вещь, как запись структуры в файл из Edit'a и Memo с одной формы и вывести в Combobox и Listbox на другой. Как делать я представляю хорошо, тк на C# делаю это вполне спокойно, но так случилось, что надо сделать это на C++, а там чувствую себя не совсем уютно. Мог бы кто-нибудь помочь или хотя бы скинуть пример?
C++ шифр рейндаля доброго времени суток всем дорогие друзья - с вами фортминор, с вами форум программистов:yes: ну долго расписывать не буду кому если не впадлу помогут. есть 2 файлика (прикреплю ниже) оба нагло сдерты с инета, оба (либо один) прямо относятся к моему курсачу. ваша задача - безусловно как талантливого программиста добавить нужное количество библиотек чтобы прога компилировалась, она то... http://www.cyberforum.ru/cpp-beginners/thread318527.html
C++ базовый и производный класс, в базовом объявлена переменная "protected", она недоступна по имени в производном классе! template <class T> воду мутит!
Друзья! Вот код #include <stdio.h> template <class T> class otets { protected: int peremennaya; }; template <class T>
Выполнить обработку текста C++
Друзья, помогите пожалуйста: Выполнить обработку текста из внешнего текстового файла, созданного в редакторе. Результаты обработки поместить во внешний файл.Определить количество слов в каждой строке, сжать каждую строку, удалив все лишние пробелы. Вот я сделал, только эта программа при записи в другой файл, удаляет первые символы строк. #include "StdAfx.h" #include <stdlib.h> #include...
C++ Оверлейные функции http://www.cyberforum.ru/cpp-beginners/thread318459.html
Оверлейные функции - это какие?
C++ Вывод на экран точки белого цвета Вопрос состоит из 3 вопросов. 1. напишите код на С который выводит белую точку. 2. как работает функция printf так что она выводит именно на ЭКРАН. 3. опишите вкратце как управлять с помощью С устройствами типа монитора, звука, принтера и как принимать что-то от клавиатуры. подробнее

Показать сообщение отдельно
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.06.2011, 23:10     Реализация класса контейнер.
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
#include <iostream>
 
namespace my {
 
    template< class T >
    class vector;
 
    template< typename T >
    std::ostream & operator << (std::ostream &, const vector< T > &);
 
    template< class T >
    class vector {
        T * arr;
        size_t _size;
    public:
        explicit vector(size_t size = 0);
        vector(const vector &);
        virtual ~vector();
 
        void push_back(const T & value);
        size_t size() const;
 
        T & operator [] (size_t i);
                  const T & operator [] (size_t i) const;
        friend std::ostream & operator << < > (std::ostream &, const vector< T > &);
    }; 
} 
 
template< typename T >
my::vector< T >::vector(size_t size) : _size(size), arr(nullptr)
{
    if(_size)
    {
        arr = new T [_size];
        memset(this->arr, 0, _size * sizeof(T));
    }
}
 
template< typename T >
my::vector< T >::vector(const vector & other)
{
    this->_size = other._size;
    this->arr = new T [_size];
    memcpy(this->arr, other.arr, _size * sizeof(T));
}
 
template< typename T >
my::vector< T >::~vector()
{
    if(_size)
        delete [] this->arr;
}
 
template< typename T >
void my::vector< T >::push_back(const T & value)
{
    if(!_size)
    {
        this->arr = new T [++_size];
        arr[0] = value;
    }
    else
    {
        T * tmp_arr = new T [++_size];
        memcpy(tmp_arr, this->arr, (_size - 1) * sizeof(T));
        tmp_arr[_size - 1] = value;
        delete [] this->arr;
        this->arr = tmp_arr;
    }
}
 
template< typename T >
size_t my::vector< T >::size() const
{
    return this->_size;
}
 
template< typename T >
T & my::vector< T >::operator [] (size_t i)
{
    return this->arr[i];
}
 
template< typename T >
const T & my::vector< T >::operator [] (size_t i) const
{
    return this->arr[i];
}
 
template< typename T >
std::ostream & my::operator << (std::ostream & out, const vector< T > & vec)
{
    for(size_t i = 0; i < vec._size; i++)
        out << vec.arr[i] << "  ";
    return out;
}
 
int main()
{       
    my::vector<int> vec;
    std::cout << vec << std::endl << "size = " << vec.size() << std::endl;
    vec.push_back(1);
    std::cout << vec << std::endl << "size = " << vec.size() << std::endl;
    vec.push_back(111);
    std::cout << vec << std::endl << "size = " << vec.size() << std::endl;
    my::vector<int> vec2(10);
    std::cout << vec2 << std::endl << " vec2 size = " << vec2.size() << std::endl;
    std::getchar();
    return 0;
}
Добавлено через 19 секунд
оператор присваивания сами определите

Добавлено через 10 минут
упс..
в конструкторе копии ошибочку исправил
 
Текущее время: 19:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru