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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 114
#1

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

10.12.2012, 15:46. Просмотров 280. Ответов 3
Метки нет (Все метки)

Всем привет)Есть вот одна проблема. Хочу управлять объекты через другие объекты.
Допустим есть базовый класс

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++):

Создать базовый класс Треугольник с 2 наследниками: Равносторонний треугольник, Прямоугольный треугольник - C++
Задание звучит так: Нужно создать базовый класс Треугольник с двумя наследующими его классами - равносторонний треугольник (·...

Класс: как обратиться к методу производного класса через итератор на базовый класс? - C++
Есть абстрактный и два порожденных. Хочу создать например list<Base*> list1; затем добавляю себе в список: ...

Как через базовый класс вызывать виртуальную функцию во всех потомках? - C++
Ну например, есть класс: class BATYANA { BATYANA(); virtual ~BATYANA(); virtual int Test(); }

typeid определяет тип указателя на базовый класс, как тип "базовый класс". Вне зависимости от присвоенного ему значения - C++
Вот код: #include <iostream> #include <string> #include <conio.h> #include <windows.h> #include <typeinfo> using...

Управление объектом наследника через базовый класс - C++
Даны два класса. Класс A - базовый класс, B - класс наследник. В классе А 3 поля, в наследнике - еще 2. Указателю на класс A присвоим...

Создание объекта через указатель на базовый абстрактный класс - C++
Есть абстрактный класс, от него наследуется 3 класса. В программе предусмотрено создание нового объекта(добавление клиента страховой...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 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
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
10.12.2012, 17:14 #4
Цитата Сообщение от dqrest Посмотреть сообщение
Да, спасибо я понял)проще будет все это реализовать через указатели !!!
А я твой ответ вообще не понял. Что "это реализовать"? И при чём тут указатели?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2012, 17:14
Привет! Вот еще темы с ответами:

Вызов виртуальной функции через указатель на базовый класс - C++
Всем привет! Помогите пожалуйста разобраться с вызовом виртуальной функции в программе. В моей программе требуется организовать класс...

Передача в контейнер объекта через указатель на базовый класс - C++
Передаю в stl контейнер list указатель на производный класс, предварительно приведя его к типу производного класса - программа вылетает.В...

Возможно ли вызвать метод наследника через указатель на базовый класс - C++
Возможно ли вызвать метод наследника,через указатель на базовый класс, если он не определён как виртуальный или этого метода просто нет в...

Вызов метода производного класса через указатель на базовый класс - C++
Всем привет ! Подскажите почему , при выполнении строки 45 я получаю ошибку ? А именно при выполнении выражения c->fnz() ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.12.2012, 17:14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru