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

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

Войти
Регистрация
Восстановить пароль
 
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
#1

Объявление статического объекта - C++

15.03.2013, 22:28. Просмотров 616. Ответов 12
Метки нет (Все метки)

Объясните пожалуйста как правильно объявить статический объект. У меня в кейсе создаётся объект,но мне он нужен и за пределами кейса,как его сделать статическим?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2013, 22:28     Объявление статического объекта
Посмотрите здесь:

Отличие динамического от статического объекта - C++
Вопрос, в универе проходим динамические объекты(классы, структуры). И я вот не пойму... В чем разница динамического от статического...

Инициализация константного статического объекта - члена класса - C++
Здравствуйте, у меня возникла проблема с инициализацией статического объекта, который является членом класса. Этот объект должен быть...

Как вызвать прегруженный const метод для статического объекта - C++
class A { public: A() { cout << "A()" << endl; } ~A() { cout << "~A()" << endl; } void foo() { cout << "foo 1_1"; } ...

Классы объявление объекта - C++
Народ вопрос очень тупой. Учу классы в C++ и ни как не могу понять, как можно создать объект через указатель?

Объявление объекта класса - C++
Доброе время суток! Дело вот в чем: В конструкторе c параметрами класса Piramida, мне нужно создать объект класса M_Ygolnik с...

Объявление объекта внутри функции - C++
Здраствуйте. У меня такой вопрос: есть класс class A { public: A(): p1(p2),p2(new int) { }

Объявление объекта вложенного класса - C++
Есть структура наподобие: template<class T> class A{ //...... public: class B { int dd; int mm; int yy; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
15.03.2013, 22:35     Объявление статического объекта #2
Что вы подразумеваете под "кейсом"?

Так вам надо?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class A {
 public:
  A(int, int) {}
};
 
class B {
 public:
  static const A SIMPLE;
};
 
const A SIMPLE(1, 1);
 
int main(int argc, char **argv) {
  A a = B::SIMPLE;
  return 0;
}
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
15.03.2013, 22:36  [ТС]     Объявление статического объекта #3
условный оператор switch
Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
15.03.2013, 22:36     Объявление статического объекта #4
static A a;//статический объект класса А
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
15.03.2013, 22:37     Объявление статического объекта #5
Подробнее о задаче тогда. С примером кода, пусть даже не компилирующимся.
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
15.03.2013, 22:49  [ТС]     Объявление статического объекта #6
Я оформляю пользовательский интерфейс и после первого оператора switch мне нужен ещё один,в котором мне понадобиться один из созданных объектов в первом операторе switch. Вот этот икс мне нужен статическим, чтобы его и дальше использовать
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
cout<<"Выберите прогрессию:\n   1) Арифметическая\n   2) Геометрическая\n";
    int k=getch();
    
    
    switch (k)
    {
        case '1':
            {
            cout<<"Вы выбрали арифметическую прогрессию\n  - Установите значение 1 члена прогрессии ";
            TArProgression x;
            x.SetFirst(k);
            cout<<"  - Установите шаг прогрессии ";
            x.SetDelta(k);
            
        
            break;
            }
        case '2':
            {
            cout<<"Вы выбрали геометрическую прогрессию\n Установите значение 1 члена прогрессии ";
            TGeoProgression x;
            x.SetFirst(k);
            cout<<"Установите шаг прогрессии ";
            x.SetDelta(k);
            break;
            }
    } 
cout<<"Выберете следующую операцию:\n 1) Получить шаг прогрессии \n 2) Получить член прогрессии с номером n \n 3) Получить сумму первых n членов";
Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
15.03.2013, 23:27     Объявление статического объекта #7
Цитата Сообщение от SKS-65 Посмотреть сообщение
x.SetDelta(k);
дык напишите static "имя класса" x; потипу static A x; при объявлении объекта класса.
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
15.03.2013, 23:46  [ТС]     Объявление статического объекта #8
но он его почему то всё равно не хочет в дальнейшем использовать,я пишу static TArProgression x; далее ниже он мне говорить что идентификатор не определён
Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
16.03.2013, 00:02     Объявление статического объекта #9
почему не определен? определи его не в свитче, а заранее
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
16.03.2013, 00:06  [ТС]     Объявление статического объекта #10
там он у меня ругается на то что имя одинаковое,а мне надо чтобы у обоих объектов этих классов было одно имя
Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
16.03.2013, 00:11     Объявление статического объекта #11
Цитата Сообщение от SKS-65 Посмотреть сообщение
там он у меня ругается на то что имя одинаковое,а мне надо чтобы у обоих объектов этих классов было одно имя
такого поидее не может быть -тоесть одинаковых имен объектов, хотя хз, не сталкивался с таким
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
16.03.2013, 00:18  [ТС]     Объявление статического объекта #12
ну в свитче то у меня создаётся только один,там ведь или то или это,а здесь оба
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2013, 01:16     Объявление статического объекта
Еще ссылки по теме:

Объявление в классе объекта другого класса - C++
какая-то фигня получается, допустим есть 2 класса - class1 и class2, в хедерах class1.h подключён class2.h, а в class2.h подключён...

Создание копии объекта используя объявление через указатель - C++
Здравствуйте. Имеется такой код: #include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; class medicament { private: ...

Сократить объявление auto_ptr для вновь создаваемого объекта - C++
Кстати, может кто подскажет... - в 3-й строке примера (std::autoptr...) можно как-то сократить запись, чтоб не повторять несколько раз new...

Инициализация статического массива - C++
Добрый вечер! Допустим, что имеется класс class A { .... public: static int array; .... }; Как инициализировать массив в...

Обнуление статического массива - C++
Нужна помощь с обнулением массива,который записан в файл и выведен на экран Надо его обнулить и снова записать в файл и на экран вывести ...


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

Или воспользуйтесь поиском по форуму:
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
16.03.2013, 01:16     Объявление статического объекта #13
а что если с наследованием поиграться? Создать базовый класс Прогрессия, от него отнаследовать арифметическую и геометрическую прогрессию.
Объвить указатель на базовый класс перед switch, а в case ветвях этому указателю присвоить нужный объект.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Progression *x;
switch(...)
{
    case '1':
        ...
        x = new TArProgression();
        x->SetFirst(k);
        ...
        break;
    case '2':
        ...
        x = new TGeoProgression();
        x->SetFirst(k);
        ...
        break;
}
Yandex
Объявления
16.03.2013, 01:16     Объявление статического объекта
Ответ Создать тему
Опции темы

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