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

Как управлять наследниками через базовый класс - C++

Восстановить пароль Регистрация
 
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 114
10.12.2012, 15:46     Как управлять наследниками через базовый класс #1
Всем привет)Есть вот одна проблема. Хочу управлять объекты через другие объекты.
Допустим есть базовый класс

C++
1
2
3
4
5
6
7
8
9
10
11
class base
{
protected:
int count;
public:
   base(){count = 0;};
   base(base* _b){ count = _b ->getC();};
   void setC(int _c){count = _c;};
   int getC(){return count;};
   
};
Есть наследник
C++
1
2
3
4
5
6
7
class nas : public base
{
public:
   nas():base(){};
   nas(base *_b): base(_b);
 
};
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
base * b = new base();
b ->setC(999);
nas *c1 = new nas(b);
nas *c2 = new nas(b);
nas *c3 = new nas(b);
b ->setC(-555);//вот здесь вопрос? возможно ли как-нить сделать так, чтобы в указателях c1,c2,c3 тоже изменилось значение count на 555. Т.е. если меняется указатель b, то все изменения автоматически происходят и в c1, c2,c3/
 
return 0;
}
Повторюсь возможно ли как-нить сделать так, чтобы в указателях c1,c2,c3 тоже изменилось значение count на 555. Т.е. если меняется указатель b, то все изменения автоматически происходят и в c1, c2,c3/
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 15:46     Как управлять наследниками через базовый класс
Посмотрите здесь:

C++ Как удалить объект по указателю на базовый класс?
C++ typeid определяет тип указателя на базовый класс, как тип "базовый класс". Вне зависимости от присвоенного ему значения
C++ Создать базовый класс - Array и производный класс - Money для работы денежной суммы
C++ Как через базовый класс вызывать виртуальную функцию во всех потомках?
Создание объекта через указатель на базовый абстрактный класс C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
10.12.2012, 15:51     Как управлять наследниками через базовый класс #2
1) Зачем? Ты понимаешь различия между классом и экземпляром объекта?
2) Сделай этот метод и поле count статическими
C++
1
2
3
4
5
6
7
8
9
10
11
class base
{
protected:
static int count;
public:
   base(){count = 0;};
   base(base* _b){};
   void setC(int _c){count = _c;};
   int getC(){return count;};  
};
int base::count=0;
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 114
10.12.2012, 17:12  [ТС]     Как управлять наследниками через базовый класс #3
Да, спасибо я понял)проще будет все это реализовать через указатели !!!
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
10.12.2012, 17:14     Как управлять наследниками через базовый класс #4
Цитата Сообщение от dqrest Посмотреть сообщение
Да, спасибо я понял)проще будет все это реализовать через указатели !!!
А я твой ответ вообще не понял. Что "это реализовать"? И при чём тут указатели?
Yandex
Объявления
10.12.2012, 17:14     Как управлять наследниками через базовый класс
Ответ Создать тему
Опции темы

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