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

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

Войти
Регистрация
Восстановить пароль
 
Lordif
21 / 21 / 1
Регистрация: 18.04.2010
Сообщений: 87
#1

Доступ к переменным - C++

31.05.2012, 23:09. Просмотров 434. Ответов 8
Метки нет (Все метки)

Есть иерархия классов:
C++
1
2
3
4
5
6
7
8
9
10
class base{
 int a;
};
class der : private base{
 void f(){
  //Необходимо использовать переменную base::a
  //Но постоянно писать base:: утомляет и код становится нечитабельным
  //Как можно это обойти?
 }
};
Добавлено через 34 минуты
Помогите пожалуйста, вопрос же несложный.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 23:09     Доступ к переменным
Посмотрите здесь:

Доступ к переменным класса - C++
Давным давно помню была такая фишка в сях, когда приходилось много раз писать конструкцию типа "VarName->member()" можно было заключить это...

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

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

Доступ к переменным в DLL программе из внешних програм - C++
Подскажите пожалуйста, как реализовать Записать данные из программы №1 в программу DLL и считать данные из DLL программой №2 По...

Friend функции не имеют доступ к закрытым переменным - C++
Всем привет. Изучаю c++ по Липпману 5-ое издание. Там на стр. 351-352 используются friend функции для получения доступа к закрытым...

Доступ к переменным базового класса при наследовании - C++
Есть следующий код class Base { protected: int x; Base* enemy; public: Base() {}

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
31.05.2012, 23:17     Доступ к переменным #2
По идеи вот так должно сработать.
C++
1
2
3
4
5
6
7
8
9
class base{
 int a;
};
class der : private base{
 void f(){
   using base::a;
   a = 10;
 }
};
Добавлено через 53 секунды
Только 'a' должна быть объявлена как public или der должен быть дружественным классом.
mad_svyat
17 / 17 / 0
Регистрация: 10.01.2012
Сообщений: 34
31.05.2012, 23:19     Доступ к переменным #3
Юзай директиву препроцессора #define, например. Вместо A можешь присвоить любое другое название.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
class base{
public:
    int a;
};
 
#define A base::a
class der : private base{
 void f(){
  //Необходимо использовать переменную base::a
  //Но постоянно писать base:: утомляет и код становится нечитабельным
  //Как можно это обойти?
     A = 0;
 }
};
 
int main()
{
    return 0;
}
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
31.05.2012, 23:22     Доступ к переменным #4
А стоп. Так она даже не static. Покажите как именно вы хотите использовать ее.

Добавлено через 2 минуты
Так ладно, тот код что я выше привел - бред, так как base не пространство имен, не обращайте на него внимания. Пора идти отдыхать.
Lordif
21 / 21 / 1
Регистрация: 18.04.2010
Сообщений: 87
31.05.2012, 23:36  [ТС]     Доступ к переменным #5
Как хочу использовать... Ну, по-прямому назначению
C++
1
int c = base::a + 5;
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
31.05.2012, 23:40     Доступ к переменным #6
Цитата Сообщение от Lordif Посмотреть сообщение
Ну, по-прямому назначению
по прямому назначение это так:
C++
1
2
base b1;
int c = b1.a + 5;

base::a это обращение к статической переменной.
Lordif
21 / 21 / 1
Регистрация: 18.04.2010
Сообщений: 87
01.06.2012, 09:07  [ТС]     Доступ к переменным #7
У меня иерархия классов и доступ необходим в функции класса, поэтому это обращение не к статической переменной.

Добавлено через 2 минуты
Может можно как то использовать typedef или typename (вообще не понимаю в каких случаях и зачем они нужны)

Добавлено через 8 часов 17 минут
Помогите пожалуйста

Добавлено через 1 час 1 минуту
Проблема решена
zss
Модератор
Эксперт С++
6287 / 5890 / 1910
Регистрация: 18.12.2011
Сообщений: 15,123
Завершенные тесты: 1
01.06.2012, 11:05     Доступ к переменным #8
А слабо объявить тип доступа к a не private:, а protected:!!!!!
private члены класса закрыты для производного класса!!!!!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2012, 11:37     Доступ к переменным
Еще ссылки по теме:

"Двойной" доступ к переменным класса - C++
Господа, прошу совета в изложенной ниже ситуации. Часто мне встречается в различных вариациях, поэтому есть потребность в изящном решении....

Префиксы к переменным - C++
собстно какие вы используете и для чего/где ? может кто-нибудь не понял о чем речь... пример: m_object

Длительность обращения к переменным - C++
Товарищи, есть ли разница между локальными и глобальными переменными в длительности чтения/записи в них? И еще такой вопрос: у меня...

Затруднения по динамическим переменным - C++
Всем привет! Когда создаю динамическую переменную, то чтобы вывести ее значение, то пишу *переменная. Если выделяю массив, то обращаюсь...


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

Или воспользуйтесь поиском по форуму:
Lordif
21 / 21 / 1
Регистрация: 18.04.2010
Сообщений: 87
01.06.2012, 11:37  [ТС]     Доступ к переменным #9
Именно так и решил проблему)
Yandex
Объявления
01.06.2012, 11:37     Доступ к переменным
Ответ Создать тему
Опции темы

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