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

Ограничение количества объектов класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задачка.Треугольник задан координатами вершин http://www.cyberforum.ru/cpp-beginners/thread433296.html
Помогите решить. Треугольник задан координатами вершин А (0; 0), В (10; 9) и С (-10;11).
C++ программу составил по уравнению, отказывается работать уравнение log2 (ax+b) – log2 x=c в конце выходит ответ x=b/(2c-a) ОДЗ:x>-b/a x>0 также по ходу решения необходимо учитывать следующее: a(не равен)2^c b(не равен) 0 а (не равен) 0 программу я попытался составить:(ошибок слишком много, не могу разобраться, новичок еще) #include <stdio.h> http://www.cyberforum.ru/cpp-beginners/thread433277.html
C++ Заменить все локальные минимумы данной матрицы M × N на нули.
Дана матрица размера M × N.Заменить все локальные минимумы данной матрицы на нули. При реше-нии допускается использовать вспомогательную матрицу. Помогите пожалуйста, нужен код на Си.
C++ Сумма цифр данного трехзначного числа N является четным числом
составить линейную программу печатающую значение true , если указанное высказывание является истинным и false - в противном случае.Сумма цифр данного трехзначного числа N является четным числом Как правило за срочность надо платить, в этом разделе помогают добровольно! Добавлено через 5 минут составить линейную программу печатающую значение true , если указанное высказывание является...
C++ вот программа на С++. подскажите, пожалуйста, ошибки. http://www.cyberforum.ru/cpp-beginners/thread433242.html
#include <stdio.h> #include <conio.h> #include <math.h> void main() { float a, b, c, x; printf(". vvedite a "); scanf("%g", &a); printf(". vvedite b "); scanf("%g", &b); printf(". vvedite c "); scanf("%g", &c);
C++ Как соединить два кода в один или изменить один из них ? Помогите прикрутить 4ри проверки особых ситуаций в этом коде 1 Вначале проверяем подойдет ли нам значение,по условию подходят только x > 0(1-ое условие) 2 Если x > 0,проверяем,чтобы под корнем было выражение больше нуля. 3 Проверка существование тангенса, для этого cos(x) != 0 4 Проверка знаменателя,нужно,чтобы не был нулем Или кто поможет прикрутить этот код к коду по ссылке ... подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
23.01.2012, 00:24     Ограничение количества объектов класса
Вот простенький пример реализации такого класса:
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
#include <iostream>
#include <vector>
 
class Foo
{
public:
    ~Foo()
    {
        --current_count;
    }
    
    static Foo *instance(int foo = 0)
    {
        if (current_count >= max_count)
            return 0;
        
        ++current_count;
        
        return new Foo(foo);
    }
    
    static Foo *instance(const Foo& source)
    {
        return instance(source.get_foo());
    }
    
    int get_foo() const
    {
        return m_foo;
    }
    
    void set_foo(int foo)
    {
        m_foo = foo;
    }
    
private:
    static const size_t max_count = 10;
    static size_t current_count;
    
private:
    Foo(int foo = 0)
    {
        set_foo(foo);
    }
    
    Foo(const Foo& source)
    {
        set_foo(source.get_foo());
    }
    
    Foo& operator=(const Foo& source)
    {
        set_foo(source.get_foo());
        
        return *this;
    }
    
private:
    int m_foo;
};
 
size_t Foo::current_count = 0;
 
int main()
{
    std::vector<Foo *> vec;
    int x = 0;
    
    for (Foo *inst = Foo::instance(x++); inst != 0; inst = Foo::instance(x++))
        vec.push_back(inst);
    
    for (size_t i = 0; i < vec.size(); ++i)
        std::cout << vec[i]->get_foo() << "  ";
    
    std::cout << std::endl;
    
    for (size_t i = 0; i < vec.size(); ++i)
        delete vec[i];
    
    return 0;
}
 
Текущее время: 00:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru