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

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

Войти
Регистрация
Восстановить пароль
 
dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
#1

Переменная базового класса в производных классах - C++

06.04.2013, 22:33. Просмотров 362. Ответов 5
Метки нет (Все метки)

Есть абстрактный базовый класс и в нем определена переменная variable:

C++
1
2
3
4
class Base {
public:
     int variable;
};
И есть два производных класса, которые используют переменную базового класса variable:

C++
1
2
3
4
5
6
7
class A: public Base {
     variable = 1;
};
 
class B: public Base {
     variable = 2;
};
Вопрос: в обоих производных классах я оперирую одной и той-же переменной variable, или же для каждого класса создается своя локальная копия?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2013, 22:33     Переменная базового класса в производных классах
Посмотрите здесь:

Реализация чистых виртуальных методов в производных классах - C++
Здравствуйте! Интересует такой вопрос: Допустим, имеется у нас базовый абстрактный класс и несколько производных от него классов. В...

Виртуальные функции (нужно ли во всех производных классах писать слово virtual?) - C++
Нужно ли во всех производных классах писать слово virtual? Или достаточно только один раз в базовом классе указать что функция...

Вызов метода производного класса через обращение к методу базового класса - C++
Добрый день. Изучаю основы ООП, наткнулся на проблему. Если создавать классы внутри main.cpp, то всё нормально. Если же создавать в...

Перегрузка оператора >> для дочернего класса от базового виртуального класса - C++
Доброго вам времени суток! Программирую на С++ не давно, в связи с отсутствием должного времени на поиск ответа в глубинах учебников,...

Реализовать оператор= для присваивания объекта класса-потомка объекту базового класса - C++
Есть два класса A и B, причем класс B является потомком A. Как реализовать следующее: obj_A = obj_B и obj_B = obj_A? Добавлено через 9...

Создать массив указателей базового класса и присвоить ему адреса каждого из екземпляров класса - C++
Всем привет. Есть условие задачи: Дан базовый класс Base у которого есть метод my_name, метод выводит сообщение This is Base class. От...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
06.04.2013, 22:46     Переменная базового класса в производных классах #2
C++
1
2
A a; //у этого своя variable
B b; //и у этого своя variable
nonedark2008
889 / 628 / 126
Регистрация: 28.07.2012
Сообщений: 1,697
06.04.2013, 22:51     Переменная базового класса в производных классах #3
Цитата Сообщение от Jupiter Посмотреть сообщение
C++
1
2
A a; //у этого своя variable
B b; //и у этого своя variable
Угу, и у
C++
1
A a2;
тоже будет своя.
dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
06.04.2013, 23:37  [ТС]     Переменная базового класса в производных классах #4
Ага, понял, спасибо
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
06.04.2013, 23:50     Переменная базового класса в производных классах #5
На счет "своих" переменных, я думаю, интересовал такой вариант:
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
#include <iostream>
 
struct A
{
   int value;
};
 
struct B : A
{
   int value;
};
 
int main() {
   
   B b;
   
   b.value = 2;
   b.A::value = 5;
   
   std::cout << b.value << std::endl;   
   std::cout << b.A::value << std::endl;
   
   return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2013, 23:55     Переменная базового класса в производных классах
Еще ссылки по теме:

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

Конструктор базового класса - C++
Такая проблема: имеется конструктор базового класса ErrorDataErrorData(ErrorCod cod, bool isFatal);, где ErrorCod вот такая...

Конструктор базового класса - C++
Привет, друзья, есть, к примеру, такие классы: class Base { public: int x; Base() { } };

Функция базового класса - C++
Как вызвать функцию базового класса для объекта производного класса, если в производном классе эта функция была замещена?


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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,731
06.04.2013, 23:55     Переменная базового класса в производных классах #6
Цитата Сообщение от dimkaok Посмотреть сообщение
той-же переменной variable, или же для каждого класса создается своя локальная копия?
не для класса а для объекта класса
класс может быть один и 100 объектов этого класса
C++
1
A a[100]
и у каждого объекта будет своя переменная
а в ребенке используется та же что и у родителя

например
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A
{
public:
int a;
}
class B: public A
{
public:
int b;
}
class C: public B
{
public:
int c;
}
у класса A в памяти будет a
у класса B a b
у класса C a b c

Добавлено через 56 секунд
Tulosba, ну это перекрытие имен
не совсем гут
Yandex
Объявления
06.04.2013, 23:55     Переменная базового класса в производных классах
Ответ Создать тему
Опции темы

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