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

в классе создаётся объект оператором new, как его удалить после использования в основной программе? delete в вызывающей функции не вариант! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ что не так?не выводит значения... http://www.cyberforum.ru/cpp-beginners/thread326366.html
#include <vcl.h> #include <math.h> #include <iostream.h> #include <stdlib.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused
C++ Вывод на монитор графики, не используя WinAPI Каким образом можно осуществлять работу с графикой и мультимедиа, не используя функции winapi? Не думаю, что это невозможно, ведь полно других ОС, кроме windows, использующих графику и визуализацию. Собственно всё сводится к обращению к портам монитора, к операциям ввода-вывода? Просто недавно меня поставили в тупик, сказав, что это невозможно, или это возможно, но только с использованием... http://www.cyberforum.ru/cpp-beginners/thread326360.html
виндовая форма C++
добрый вечер. прошу помощи в реализации. есть код. но мне его в форму сделать нужно.сам код: #include <iostream> //для консоли #include <string> #include <algorithm> #include <vector> #include <map> using namespace std; class Date {
C++ Предопределение типа данных С++
Доброго времени суток) Столкнулась с проблемой - нужно было код из книги,написанный на паскале, перекодить в с++.Даны две структуры,и в каждой элементы ссылаются друг на друга..в паскале,видимо,не играет роли,а вот в си.. struct item { int key; page* p; int count; };
C++ Очередь с приоритетом http://www.cyberforum.ru/cpp-beginners/thread326337.html
Всем привет . Собственно нужно организовать очередь с приоритетом. Задание: В офисе один принтер, на печать должны подоватся те документы которые выше по приоритету. Имеются такие дефайны. Код: #define FULL 10 //макс.размер очереди #define EMPTY 0 #define DIRECTOR 10 //приоритет директора
C++ Циклы - срочно Пишу в Borland C++. Ежемесячная стипендия студента составляет А р., а расходы на проживание превышают стипендию и составляют В р. в месяц. Рост цен ежемесячно увеличивает расходы на 3%. Составьте программу расчета необходимой суммы денег, которую единовременно надо попросить у родителей, чтобы можно было прожить учебный год (10 месяцев), используя только эти деньги и стипендию. подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
27.06.2011, 21:19     в классе создаётся объект оператором new, как его удалить после использования в основной программе? delete в вызывающей функции не вариант!
kravam, омг, не уж то так всё сложно? Всё-таки вам это надо, не нам. Могли бы и разобраться...
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
#include <iostream>
 
// Шаблонный класс "Матрица"
template< typename T >
class Matrix
{
public:
    // Конструктор
    // rows - количество строк
    // cols - количество столбцов
    Matrix(size_t rows = 1, size_t cols = 1):
    m_rows(rows),             // Инициализируем количество строк
    m_cols(cols),             // Инициализирцем количество столбцов
    m_matrix(new T *[m_rows]) // Выделяем память под массив указателей
    {
        // Инициализируем каждый указатель массива отдельно выделенным массивом
        for (size_t i = 0; i < m_rows; ++i)
            m_matrix[i] = new T [m_cols];
    }
 
    // Деструктор
    ~Matrix()
    {
        // Удаляем каждый из массивов, на которые указывают элементы массива
        // указателей
        for (size_t i = 0; i < m_rows; ++i)
            delete [] m_matrix[i];
 
        // Удаляем массив указателей
        delete [] m_matrix;
    }
 
    // Оператор []
    T *operator[](size_t index)
    {
        // Возвращаем соответствующую строку матрицы
        return m_matrix[index];
    }
 
    // Константный оператор [] (аналогично неконстантному)
    const T *operator[](size_t index) const
    {
        return m_matrix[index];
    }
 
private:
    size_t m_rows; // Количество строк матрицы
    size_t m_cols; // Количество столбцов матрицы
    T **m_matrix;  // Сама матрица
};
 
int main()
{
    const size_t rows = 2;
    const size_t cols = 2;
 
    Matrix< double > m(rows, cols);
 
    for (size_t i = 0; i < rows; ++i)
        for (size_t j = 0; j < cols; ++j)
            m[i][j] = i + j;
 
    for (size_t i = 0; i < rows; ++i)
    {
        for (size_t j = 0; j < cols; ++j)
            std::cout << m[i][j] << "  ";
 
        std::cout << std::endl;
    }
 
    return 0;
}
 
Текущее время: 14:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru