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

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

Войти
Регистрация
Восстановить пароль
 
vua72
414 / 414 / 85
Регистрация: 28.11.2010
Сообщений: 1,175
Завершенные тесты: 1
#1

Область видимости и время жизни переменных внутри класса - C++

22.11.2012, 13:15. Просмотров 1023. Ответов 4
Метки нет (Все метки)

Есть класс, определение в файле myclass.h, реализация myclass.cpp
Как и где правильно определить глобальную переменную, чтоб ее значение сохранялось все время жизни класса, т.е. ее значение можно было использовать во всех private и public методах этого класса? Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2012, 13:15     Область видимости и время жизни переменных внутри класса
Посмотрите здесь:

C++ Время жизни переменных
Область видимости C++
Область видимости переменных C++
Область видимости C++
C++ Область видимости переменной пользовательского класса
C++11 время жизни переменных C++
C++ Область видимости
C++ Область видимости переменных
Область видимости переменных C++
область видимости класса C++
C++ Нюансы работы с лямбдами и область видимости переменных: как передать в лямбду переменную, а не её копию?
Пример автоматических переменных и область их видимости C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2914 / 1343 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
22.11.2012, 13:29     Область видимости и время жизни переменных внутри класса #2
Статической переменной класса в файле заголовка.
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
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
 
class Something {
 private:
  std::string name;
  std::string getFormedNameWithSevenSpaces() const {
    return SEVEN_SPACES + name;
  }
 public:
  Something(const std::string &name) : name(name) {}
  const std::string &getName() const {
    return name;
  }
  std::string getNameWithSevenSpaces() const {
    return getFormedNameWithSevenSpaces();
  }
  bool isEven() const {
    return hasEvenNumberOfSymbols(getName());
  }
  static const std::string SEVEN_SPACES;
  static bool hasEvenNumberOfSymbols(const std::string &string) {
    return string.length() % 2 == 0;
  }
};
 
const std::string Something::SEVEN_SPACES = "       "; 
 
int main(int argc, char **argv) {
  Something something("something");
  std::cout << something.getNameWithSevenSpaces() << std::endl;
  return 0;
}
alsav22
5410 / 4806 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.11.2012, 15:06     Область видимости и время жизни переменных внутри класса #3
Не совсем понятен вопрос. Что имеется ввиду под временем жизни класса? Вообще-то, любая переменная класса сохраняется до конца жизни объекта, и к ней можно всегда обращаться с помощью методов класса.
vua72
414 / 414 / 85
Регистрация: 28.11.2010
Сообщений: 1,175
Завершенные тесты: 1
23.11.2012, 02:12  [ТС]     Область видимости и время жизни переменных внутри класса #4
Спасибо, на что влияет объявление static в имени переменной класса?
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
23.11.2012, 09:23     Область видимости и время жизни переменных внутри класса #5
vua72, На то, что это становится переменная класса, а не объекта.
Yandex
Объявления
23.11.2012, 09:23     Область видимости и время жизни переменных внутри класса
Ответ Создать тему
Опции темы

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