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

Можно ли из класса родителя просигналить всем потомкам? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Чтение из файла в массив string http://www.cyberforum.ru/cpp-beginners/thread921306.html
Есть файл с 50 строками (в конце последней - '\n') и код чтения строк в массив string. При чтении идёт подсчёт считанных строк. Если количество строк в файле больше или равно размеру массива, то выход, из чтения файла, происходит при достижении равенства считанных строк и размера массива. Если же массив больше, чем количество строк в файле, то выход из чтения происходит при достижении конца...
C++ Цикл for проверка 0 Здравствуйте подскажите если не трудно. Пишу программу и нужно чтобы вводимые данные проверялись на <= 0. Так вот когда ввожу меньше 0 цикл работает, но если ввести 0 происходит зацикливание. Как изменить код? Какие еще способы печати таблицы результатов вы знаете? /* Ввод данных */ printf ( "\n%3s", " Введите начало диапазона: " ); Input_Validation ( start_of_range ); printf (... http://www.cyberforum.ru/cpp-beginners/thread921305.html
Будет ли это компилироватся C++
Нашел один из проблемных кусков кода, вот один из них: STRES=GetStartRes(); InitEngine(); SetMineBalanse(19,LandBalance); MineExtraction(); SetMinesBuildingRules(DefaultMinesBuilding, 27); switch(LAND){
[Error] msvcp110.dll C++
Ребят, подскажите пожалуйста... Я скомпилировал программу, поставил конфигурацию на "Release", запускается все хорошо... Но если скидываю другу, то у него она попросту не работает, ругается на файл msvcp110.dll. Это мой косяк, или все же проблемы на его стороне? :\ В любом случае, подскажите как исправить :) И да, чтобы повторно тему не создавать, еще вопрос такой, вот сурс моей программы...
C++ Бесконечный замкнутый круг программы и цвет http://www.cyberforum.ru/cpp-beginners/thread921277.html
1 Вопрос как сделать чтобы при завершении действий программы, например 2+2=4 после ответа 4 должно следовать не завершение программы, а чтобы она шла по кругу до бесконечности, как такое сделать? 2 Вопрос как сделать цвет консоли и текста, извените меня пожалуйста за спам темами, ибо все тему которые я видел на этом форуме про цвета требуют дополнительные библиотеки, либо неправильные.
C++ Агоритм крускала Всем привет ребят такая проблема, у меня такая проблема, была задана задача на практике реализовать алгоритм крускала и прима, с прима проблем нет, а вот с крускала возникли серьёзные проблемы, в крускале есть момент когда нужно проверять имеют ли точки ребра связь по средством других рёбер, так вот этот момент я не могу реализовать, помогите кто нибудь. bool Choose(int **Ribs, int x, int y, int... подробнее

Показать сообщение отдельно
nxtech
77 / 59 / 2
Регистрация: 26.06.2013
Сообщений: 198
11.07.2013, 13:58     Можно ли из класса родителя просигналить всем потомкам?
Примитивный вариант
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
#include <iostream>
#include <string>
#include <vector>
 
class Base
{
public:
    static void Signal()
    {
        for (std::vector<Base*>::iterator it = _instances.begin() ; it != _instances.end(); ++it)
        {
            (*it)->DoWork();
        }
    }
 
    virtual ~Base()
    {
        for (std::vector<Base*>::iterator it = _instances.begin() ; it != _instances.end(); ++it)
        {
            if (*it == this)
            {
                _instances.erase(it);
                break;
            }
        }
 
        std::cerr << "Calling method \'" << __FUNCTION__ << "\' for object \'" << _name << "\'\n";
    }
    Base(std::string const& name)
    {
        _name = name;
        _instances.push_back(this);
 
        std::cerr << "Calling method \'" << __FUNCTION__ << "\' for object \'" << _name << "\'\n";
    }
    virtual void DoWork()
    {
        std::cerr << "Calling method \'" << __FUNCTION__ << "\' for object \'" << _name << "\'\n";
    }
 
private:
    static std::vector<Base*> _instances;
 
protected:
    std::string _name;
};
std::vector<Base*> Base::_instances;
 
class DerivedA : public Base
{
public:
    virtual ~DerivedA()
    {
        std::cerr << "Calling method \'" << __FUNCTION__ << "\' for object \'" << _name << "\'\n";
    }
    DerivedA(std::string name) : Base(name)
    {
        std::cerr << "Calling method \'" << __FUNCTION__ << "\' for object \'" << _name << "\'\n";
    }
    void DoWork()
    {
        std::cerr << "Calling method \'" << __FUNCTION__ << "\' for object \'" << _name << "\'\n";
    }
};
 
class Derived2A : public DerivedA
{
public:
    virtual ~Derived2A()
    {
        std::cerr << "Calling method \'" << __FUNCTION__ << "\' for object \'" << _name << "\'\n";
    }
    Derived2A(std::string name) : DerivedA(name)
    {
        std::cerr << "Calling method \'" << __FUNCTION__ << "\' for object \'" << _name << "\'\n";
    }
    void DoWork()
    {
        std::cerr << "Calling method \'" << __FUNCTION__ << "\' for object \'" << _name << "\'\n";
    }
};
 
int main()
{
    Base* base = new Base("base");
    DerivedA derivedA("derivedA");
    DerivedA* derived2A = new Derived2A("deriveda2A");
 
    Base::Signal();
 
    delete derived2A;
    delete base;
    return 0;
}
 
Текущее время: 11:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru