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

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

Войти
Регистрация
Восстановить пароль
 
IloveOOP
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 19
#1

Как приведенный код использовать как класс - C++

05.01.2014, 22:23. Просмотров 267. Ответов 6
Метки нет (Все метки)

Добрый день! проблема в следующем:
C++
1
2
3
4
5
6
char* charTypes[] =
    {
        "Add", "Min", "Mul", "Div", "Mod",//  базовые операции с числами
        "EQ", "NE", "LT", "GT", "LE", "GE",//  "равно","не"равно", "меньше", "больше", меньше или "равно", 
                ...
    };
эту штуку мне нужно "засунуть" в класс или,хотя бы в файл где определён класс. Пытаюсь определить через ключевое слово static (static char* charTypes[] =...) не получается. Создавать огромную переменную в конструкторе для каждого экземпляра класса,ну мягко говоря,не оправданно. Подскажите как следует поступить?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2014, 22:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как приведенный код использовать как класс (C++):

Как оформить приведенный код в виде функции - C++
Доброй ночи всем. Помогите пожалуйста. Еле смог написать структуру, лазая по форуму, а вот оформить в виде функции не могу вообще никак( ...

Как приведенный код выводит ближайшую степень двойки? Разобрать работу программы - C++
unsigned k ; cin>>k; for (--k;k&(k+1);k|=k+1); cout<<++k; вот есть программа?что она делает - я знаю(выводит ближайшую степень...

Как использовать класс, определенный позднее? - C++
как заюзать класс определенный позднее, пробую так: #include <iostream> using namespace std; class B; class A{ B...

Как использовать класс описанный в другом файле - C++
Есть проект, несколько файлов, в одном из них описаны классы. Как использовать эти классы в других файлах?

Класс и конструктор с string или как использовать указатели. - C++
Есть такая вот ерунда class human { public: string name; string surname; int age; human(string *imya, string *familia,...

Как использовать вектор, содержащий указатели на класс, в этом же классе? - C++
Возникла необходимость обращения к объекту класса внутри класса с помощью вектора, содержащего указатели на объекты этого класса. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
05.01.2014, 23:26 #2
C++
1
2
3
4
5
6
7
8
class foo{
private:
    const std::vector<std::string>charTypes = {
        "Add", "Min", "Mul", "Div", "Mod",// базовые операции с числами
        "EQ", "NE", "LT", "GT", "LE", "GE",// "равно","не"равно", "меньше", "больше", меньше или "равно", 
        ...
    }
};
Добавлено через 1 минуту
IloveOOP, std::vector выбрал от фонаря, не факт что это самая подходящая структура для ваших нужд.
1
IloveOOP
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 19
05.01.2014, 23:43  [ТС] #3
в данном случае,эта структура данных будет на уровне объекта или экземпляра,т.е. не будет ли создаваться с каждым новым экземпляром класса?
0
Nikcharn
71 / 53 / 3
Регистрация: 31.07.2009
Сообщений: 149
05.01.2014, 23:48 #4
Цитата Сообщение от IloveOOP Посмотреть сообщение
в данном случае,эта структура данных будет на уровне объекта или экземпляра,т.е. не будет ли создаваться с каждым новым экземпляром класса?
Тогда засунь в enum.
0
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
05.01.2014, 23:52 #5
Цитата Сообщение от IloveOOP Посмотреть сообщение
в данном случае,эта структура данных будет на уровне объекта или экземпляра,т.е. не будет ли создаваться с каждым новым экземпляром класса?
Будет. Если нужно статическое поле класса, то: в заголовочном файле - объявление:
C++
1
2
3
4
class class_type {
 
   static char const* charTypes[charTypesSize];
};
В файле с исходным кодом - определение:
C++
1
char const* class_type::charTypes[charTypesSize] = { /* ... */ };
1
Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
06.01.2014, 00:06 #6
А почему просто не инициализировать значениями в конструкторе?
0
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
06.01.2014, 00:17 #7
IloveOOP, да да, если сделать такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <vector>
#include <initializer_list>
 
class foo
{
public:
    foo() : v(1024) {}
private:
    const std::vector<char> v;
};
 
int main()
{
    std::vector<foo> v(1024*1024);
    std::cin.ignore();
}
То прога будет жрать 1Гб памяти (:
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2014, 00:17
Привет! Вот еще темы с ответами:

Как использовать перегруженный оператор [ ], если дан не сам класс, а указатель на него? - C++
Это указатель на класс figure *f Это перегрузка оператора void figure::operator (int i) { cout &lt;&lt; &quot;(&quot; &lt;&lt; massiv.x &lt;&lt; &quot;,&quot; &lt;&lt;...

Как использовать собственный класс в структуре struct до определения самого класса в тексте программы - C++
Проблема такая: хочу в структуре одним из элементов сделать класс. Проблема в том, что эта структура задается в самом начале текста...

Что из себя представляет код в стеке, и как его использовать - C++
Гугл мне по этому поводу не помог, поэтому спрашиваю тут: что из себя представляет из себя код в стеке, как его использовать(вызвать там и...

Готовый код.Как перестроить структуру под класс.wxDex-C++ - C++
Всем доброго вечера и хорошего настроения! Знатоки C/C++ подскажите как &quot;переделать&quot; готовую программку для использования её с...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.01.2014, 00:17
Ответ Создать тему
Опции темы

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