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

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

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

C++ Класс и конструктор с string или как использовать указатели.
C++ Как оформить приведенный код в виде функции
Как использовать класс описанный в другом файле C++
Как использовать собственный класс в структуре struct до определения самого класса в тексте программы C++
C++ Как использовать перегруженный оператор [ ], если дан не сам класс, а указатель на него?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
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 выбрал от фонаря, не факт что это самая подходящая структура для ваших нужд.
IloveOOP
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 19
05.01.2014, 23:43  [ТС]     Как приведенный код использовать как класс #3
в данном случае,эта структура данных будет на уровне объекта или экземпляра,т.е. не будет ли создаваться с каждым новым экземпляром класса?
Nikcharn
 Аватар для Nikcharn
71 / 53 / 3
Регистрация: 31.07.2009
Сообщений: 149
05.01.2014, 23:48     Как приведенный код использовать как класс #4
Цитата Сообщение от IloveOOP Посмотреть сообщение
в данном случае,эта структура данных будет на уровне объекта или экземпляра,т.е. не будет ли создаваться с каждым новым экземпляром класса?
Тогда засунь в enum.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 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] = { /* ... */ };
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
06.01.2014, 00:06     Как приведенный код использовать как класс #6
А почему просто не инициализировать значениями в конструкторе?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2014, 00:17     Как приведенный код использовать как класс
Еще ссылки по теме:

Как приведенный код выводит ближайшую степень двойки? Разобрать работу программы C++
Как использовать вектор, содержащий указатели на класс, в этом же классе? C++
Что из себя представляет код в стеке, и как его использовать C++

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

Или воспользуйтесь поиском по форуму:
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
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Гб памяти (:
Yandex
Объявления
06.01.2014, 00:17     Как приведенный код использовать как класс
Ответ Создать тему
Опции темы

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