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

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

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

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

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

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

Область видимости переменных - C++
Как использовать одну переменную в нескольких файлах, если эта переменная задана только в одном. Файлы между собой связаны Добавлено...

Область видимости переменных - C++
Здравствуйте. Столкнулся со следующей проблемой: есть файл main.cpp: int a, b; #include "class.h" int main() { ...

Область видимости переменных - C++
Не компилируется программа, пишет, что count не является однозначным... #include <iostream> #include <stdio.h> using namespace std; ...

Пример автоматических переменных и область их видимости - C++
Здравствуйте, пишу на форуме в первый раз и я только начал изучать программирование C++(по книге Хортона). Книга написана на версию VS...

C++11 время жизни переменных - C++
После долгого перерыва в программирование вновь спохватился и тут наткнулся на такую не ожиданность #include <iostream> using...

Время жизни переменных - C++
Добрый вечер. у меня такая проблема. мне нужно перегрузить функцию для моего класса: numb numb::operator +(const numb &p)const { ...

область видимости класса - C++
А почему у меня ошибку выдает? Не могу понять using namespace std; class Base { int a; public: Base(int aa) { a = aa; } ...

Время жизни локальных переменных в цикле - C++
Добрый вечер! допустим, в таком коде: int i=100; while(i>0) { int t = i+1; ... --i; }

Область видимости переменной пользовательского класса - C++
Всем привет! Столкнулся с такой проблемой: Создал клас и в нем класс исключений class A { char* pt; public: class...

Нюансы работы с лямбдами и область видимости переменных: как передать в лямбду переменную, а не её копию? - C++
Очень нужна помощь, не выходит задать глобальную переменную для работы программы, возможно нужно немного изменить код функции: Функция...

Область видимости - C++
Даю фрагмент программы: #include <iostream> #include <stdio.h> #include <cmath> struct elem //тип элемента двусвязного списка ...

Область видимости - C++
Здравствуйте. Тут такое дело: #include <vector> class SomeClass { public: SomeClass( std::vector< int > v ) : vec( v ) {} ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
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
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.11.2012, 15:06     Область видимости и время жизни переменных внутри класса #3
Не совсем понятен вопрос. Что имеется ввиду под временем жизни класса? Вообще-то, любая переменная класса сохраняется до конца жизни объекта, и к ней можно всегда обращаться с помощью методов класса.
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
23.11.2012, 02:12  [ТС]     Область видимости и время жизни переменных внутри класса #4
Спасибо, на что влияет объявление static в имени переменной класса?
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
23.11.2012, 09:23     Область видимости и время жизни переменных внутри класса #5
vua72, На то, что это становится переменная класса, а не объекта.
Yandex
Объявления
23.11.2012, 09:23     Область видимости и время жизни переменных внутри класса
Ответ Создать тему
Опции темы

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