Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переменные в классе 
V
    Опции темы
programming
  Дата 14.8.2008, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 20.6.2008

Репутация: нет
Всего: 1



Можно ли получить доступ к переменным одной элемент-функции в другой элемент функции?
Например если я пишу в первой элемент функции int a, а во второй a + 1, то вылезает ошибка во второй элемент функции `a' undeclared (first use this function)
--------------------
<удалено администрацией>
PM MAIL   Вверх
kurtis
Дата 14.8.2008, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



Нельзя, переменная должна быть глобальной, либо же первая функция должна возвращать значение переменной a, а вторая должна принимать его в качестве аргумента
PM MAIL   Вверх
programming
  Дата 14.8.2008, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 20.6.2008

Репутация: нет
Всего: 1



Цитата(kurtis @ 14.8.2008,  10:06)
Нельзя, переменная должна быть глобальной, либо же первая функция должна возвращать значение переменной a, а вторая должна принимать его в качестве аргумента

А как это сделать?
--------------------
<удалено администрацией>
PM MAIL   Вверх
bsa
Дата 14.8.2008, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(programming @ 14.8.2008,  11:42)
элемент-функции

А что это за терминология? Может ты хотел сказать "метод" ("метод класса")? Вообще-то, все переменные, к которым должны иметь доступ все методы, должны быть определены внутри класса.
Пример:
Код
class MyClass
{
public:
    MyClass(int a = 0) : a_(a) {}
    int inc() { return ++a_; }
    int dec() { return --a_; }
private:
    int a_;
};


Это сообщение отредактировал(а) bsa - 14.8.2008, 12:13
PM   Вверх
programming
Дата 14.8.2008, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 20.6.2008

Репутация: нет
Всего: 1



Цитата(bsa @ 14.8.2008,  10:10)
Цитата(programming @ 14.8.2008,  11:42)
элемент-функции

А что это за терминология?

Например 
Код

void welcome




--------------------
<удалено администрацией>
PM MAIL   Вверх
bsa
Дата 14.8.2008, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(programming @ 14.8.2008,  12:14)
Например 
Код

void welcome

Только за это тебя компилятор пошлет в долгое эротическое путешествие.  smile 
PM   Вверх
cutwater
Дата 14.8.2008, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 2
Всего: 10



Скорей всего автор недочитал документацию. Такого понятия как элемент - функция не существует, есть метод (функция-член класса), изобразите в коде, что у вас не выходит.

Добавлено через 49 секунд
Цитата(bsa @  14.8.2008,  12:15 Найти цитируемый пост)
в долгое эротическое путешествие

 smile  Компилятор не без юмора однако.


--------------------
user posted image
PM MAIL   Вверх
programming
Дата 14.8.2008, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 20.6.2008

Репутация: нет
Всего: 1



Например 
Код

class Welcome
{
public:
void welcome()
{
int a;
}
void welcome2()
{
a=a+1;
}
};

Будет ошибка `a' undeclared (first use this function)

Это сообщение отредактировал(а) programming - 14.8.2008, 12:20
--------------------
<удалено администрацией>
PM MAIL   Вверх
LavYaAll
Дата 14.8.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 62
Регистрация: 1.5.2008

Репутация: 1
Всего: 1



Цитата(programming @  14.8.2008,  13:42 Найти цитируемый пост)
 элемент функции 

Обычно говорят либо метод, либо функция-член класса. Я обычно использую первое.
Цитата(programming @  14.8.2008,  13:42 Найти цитируемый пост)
Можно ли получить доступ к переменным одной элемент-функции в другой элемент функции?

Прямо никак. (вернее, можно при некоторых условиях, но это наверное страшный гемморой) Косвенно можно так:
Код

int MySecondFunc()
{
      int a = 0;
      return a;
}

void MyFirstFunc()
{
      int bufA = MySecondFunc();
      ++bufA;
}


Это сообщение отредактировал(а) LavYaAll - 14.8.2008, 12:27
PM   Вверх
cutwater
Дата 14.8.2008, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 2
Всего: 10



Читать о области видимости локальных переменных. В вашем случае можно объявить переменную как поле класса 
Код

class Welcome
{
int a;
public:
void welcome()
{

}
void welcome2()
{
a=a+1
}
};



--------------------
user posted image
PM MAIL   Вверх
kurtis
Дата 14.8.2008, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



Код

class Welcome
{
    private:
        int a;//МОЖНО
    public:
        void welcome()
        {
            //int a;//НИЗЯ
        }
        void welcome2()
        {
            a=a+1
        }
};


PM MAIL   Вверх
programming
  Дата 14.8.2008, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 20.6.2008

Репутация: нет
Всего: 1



Цитата(cutwater @ 14.8.2008,  10:20)
Читать о области видимости локальных переменных. В вашем случае можно объявить переменную как поле класса 
Код

class Welcome
{
int a;
public:
void welcome()
{

}
void welcome2()
{
a=a+1
}
};

Получилось.
Спасибо.
--------------------
<удалено администрацией>
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0876 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.