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

Паттерн "Одиночка" и динамическая память - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массивы и минимально-максимальные значения http://www.cyberforum.ru/cpp-beginners/thread589647.html
Ребят,завтра контрольная,а я совсем забыла о своих домашних задачах:(Пожалуйста,помогите кому это не сложно и не жалко:(На самом примитивном С++ наподобие #include <iostream.h> #include <conio.h> void main() { clrscr(); int *A,N; cin>>N; A=new int; for (int i=0;i<N;i++)
C++ Вычислить значение полинома Полином P(x)=C1*x^ N1+C2*x^ N2+…+Ck*x^Nk представляется в виде линейного динамического списка. Вычислить значение полинома P(x,y)=C1*x^N1*y^M1+C2*x^N2*y^M2+… …+Ck*x^Nk*y^Mk при фиксированном значении переменной x . Например P(x,y)=5*x^4*y^8 + 7*x^2*y^5 => P(2,y) =5*2^4*y^8 + 7*2^2*y^5= = 80*y^8 + 28*y^5 . Желательно с рекурсией... Заранее спасибо!Буду благодарна всем кто поможет =3 http://www.cyberforum.ru/cpp-beginners/thread589641.html
C++ Определить количество 8-значных чисел, у которых сумма цифр...
Дано натуральное число N. Определить количество 8-значных чисел, у которых сумма цифр в цифровой записи числа была меньше, чем N. Если таких чисел нет, то вывести слово "НЕТ".
C++ Простая задачка. Кто поможет разобраться ?
Из положительных значений двух целочисленных массивов различной размерно-сти сформировать общий массив. Найти среднее арифметическое элементов, рас-положенных в массиве до первого простого числа. Создать функции для вычисле-ния среднего значения и определения простого числа. #include <iostream> using namespace std; int main() { int n,n1,*X,*Y,*Z,k(0),k1(0),sum_str,sr_arif; ...
C++ Дан квадратный массив размером 15х15, заполненный цифрами http://www.cyberforum.ru/cpp-beginners/thread589627.html
Доброе время суток! Сразу попрошу не ругаться, так как тема не новая. Условие задачи: Дан квадратный массив размером 15х15, заполненный цифрами. Вывести на зкран часть массива: а) расположенную выше побочной диагонали; б) расположенную ниже главной диалонали. Помогите пожалуйста решить...
C++ Обойти конём все поля шахматной доски Обойти конём все поля шахматной доски размером (n х n) клеток, побывав на каждом из полей ровно один раз. Прошу с подробнейшим объяснением, ибо знаю очень мало. подробнее

Показать сообщение отдельно
Red Planet
 Аватар для Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
28.05.2012, 22:01     Паттерн "Одиночка" и динамическая память
Приветствую всех! Набросал паттерн "Одиночка", при конструировании есть динамическая память, также статическое поле (имеется в виду static_field, а не сам instance). Подобный объект нужно будет внести в другую, намного более сложную задачу. Нет ли в реализации ничего опасного/плохого? Знаю, что если код компилируется и работает, то это еще ничего не значит, так как могут быть проблемы, проявляющиеся незакономерно (например, с памятью).

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
// ---------------------------------------------------------------------------
 
#include <vcl.h>
#include <iostream>
#include <list>
#pragma hdrstop
 
#include <tchar.h>
 
#pragma argsused
#include "func.h"
 
using namespace std;
 
// ---------------------------------------------------------------------------
class Singleton {
public:
 
    int get_amount() {
        return amount;
    }
 
    static Singleton* get_inst();
 
    static int static_field;
    int *p;
 
    ~Singleton() {
        delete[]p;
    }
 
    void show_array();
 
private:
    static Singleton* volatile inst;
    int amount;
 
    Singleton() {
        amount = 5;
        p = new int[amount];
        for (int i = 0; i < amount; i++) {
            p[i] = 10 * i;
        }
    }
};
 
Singleton* volatile Singleton::inst = NULL;
int Singleton::static_field = 90;
 
Singleton* Singleton::get_inst() {
    if (inst == 0) {
        if (inst == 0) {
            Singleton* volatile temp = new Singleton();
            inst = temp;
        }
    }
    return inst;
}
 
void Singleton::show_array() {
    cout << "Array" << endl;
    for (int i = 0; i < amount; i++) {
        cout << p[i] << endl;
    }
}
 
int _tmain(int argc, _TCHAR* argv[]) {
    cout << "amount: " << Singleton::get_inst()->get_amount() << endl;
    cout << "static_field: " << Singleton::get_inst()->static_field << endl;
    Singleton::get_inst()->show_array();
    Singleton::get_inst()->~Singleton();
    system("pause");
    return 0;
}
// ---------------------------------------------------------------------------
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru