Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
4 / 4 / 0
Регистрация: 06.01.2012
Сообщений: 117
1

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

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

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

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/
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2012, 15:46
Ответы с готовыми решениями:

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

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

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

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

3
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,493
Записей в блоге: 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;
1
4 / 4 / 0
Регистрация: 06.01.2012
Сообщений: 117
10.12.2012, 17:12  [ТС] 3
Да, спасибо я понял)проще будет все это реализовать через указатели !!!
0
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,493
Записей в блоге: 1
10.12.2012, 17:14 4
Цитата Сообщение от dqrest Посмотреть сообщение
Да, спасибо я понял)проще будет все это реализовать через указатели !!!
А я твой ответ вообще не понял. Что "это реализовать"? И при чём тут указатели?
0
10.12.2012, 17:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2012, 17:14
Помогаю со студенческими работами здесь

класс уравнение с наследниками
Описать класс,представляющий квадратное уравнение вида ax^2*bx+c=0.Описать метод,вычисляющий...

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

Удаление массива через указатель на базовый класс
Всем привет! У меня тут возникли сомнения можно или нельзя удалять динамически созданный массив...

Запись объекта в файл через указатель на базовый класс
Можно ли при помощи write как-нибудь записать массив объектов производных классов в файл, используя...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru