Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
SKS-65
5 / 5 / 4
Регистрация: 18.10.2011
Сообщений: 187
1

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

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

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

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

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

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

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

Объявление объекта класса
Доброе время суток! Дело вот в чем: В конструкторе c параметрами класса...

12
lemegeton
2934 / 1363 / 467
Регистрация: 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;
}
0
SKS-65
5 / 5 / 4
Регистрация: 18.10.2011
Сообщений: 187
15.03.2013, 22:36  [ТС] 3
условный оператор switch
0
Kins
59 / 58 / 7
Регистрация: 03.02.2013
Сообщений: 167
15.03.2013, 22:36 4
static A a;//статический объект класса А
0
lemegeton
2934 / 1363 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
15.03.2013, 22:37 5
Подробнее о задаче тогда. С примером кода, пусть даже не компилирующимся.
0
SKS-65
5 / 5 / 4
Регистрация: 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 членов";
0
Kins
59 / 58 / 7
Регистрация: 03.02.2013
Сообщений: 167
15.03.2013, 23:27 7
Цитата Сообщение от SKS-65 Посмотреть сообщение
x.SetDelta(k);
дык напишите static "имя класса" x; потипу static A x; при объявлении объекта класса.
0
SKS-65
5 / 5 / 4
Регистрация: 18.10.2011
Сообщений: 187
15.03.2013, 23:46  [ТС] 8
но он его почему то всё равно не хочет в дальнейшем использовать,я пишу static TArProgression x; далее ниже он мне говорить что идентификатор не определён
0
Kins
59 / 58 / 7
Регистрация: 03.02.2013
Сообщений: 167
16.03.2013, 00:02 9
почему не определен? определи его не в свитче, а заранее
0
SKS-65
5 / 5 / 4
Регистрация: 18.10.2011
Сообщений: 187
16.03.2013, 00:06  [ТС] 10
там он у меня ругается на то что имя одинаковое,а мне надо чтобы у обоих объектов этих классов было одно имя
0
Kins
59 / 58 / 7
Регистрация: 03.02.2013
Сообщений: 167
16.03.2013, 00:11 11
Цитата Сообщение от SKS-65 Посмотреть сообщение
там он у меня ругается на то что имя одинаковое,а мне надо чтобы у обоих объектов этих классов было одно имя
такого поидее не может быть -тоесть одинаковых имен объектов, хотя хз, не сталкивался с таким
0
SKS-65
5 / 5 / 4
Регистрация: 18.10.2011
Сообщений: 187
16.03.2013, 00:18  [ТС] 12
ну в свитче то у меня создаётся только один,там ведь или то или это,а здесь оба
0
Venzo
125 / 123 / 16
Регистрация: 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;
}
1
16.03.2013, 01:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2013, 01:16

Объявление объекта внутри функции
Здраствуйте. У меня такой вопрос: есть класс class A { public: A():...

Объявление объекта вложенного класса
Есть структура наподобие: template&lt;class T&gt; class A{ //...... public:...

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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