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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
renok
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 76
#1

Инициализация char массива - C++

13.04.2013, 18:06. Просмотров 2176. Ответов 9
Метки нет (Все метки)

Мне нужно объявить и инициализировать массив char'ов.
К примеру,
C++
1
char *m_words={'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
При подобном использовании ругается на фигурные скобки, мол, "непредвиденные лексемы перед '{'; пропуск вероятного тела функции".
При инициализации могут в массиве быть совершенно любые символы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2013, 18:06     Инициализация char массива
Посмотрите здесь:

Инициализация массива char'ов в структуре - C++
Вот создал такую структуру struct ubs { //Конструктор с параметрами по умолчанию ubs( char...

инициализация массива char в конструкторе - C++
Вопрос такой. Есть класс simple, в классе есть поле char in. Естественно хочу инициализировать это поле в конструкторе. in={0},...

Инициализация char в классе - C++
Не понимаю, как поместить символьный массив в класс. На выводе получаются случайные символы. class Person { char last_name; public: ...

Инициализация vector<char> - C++
Добрый день. Подскажи те, как инициализировать vector&lt;char&gt; символами - буквами алфавита.

Инициализация char в конструкторе - C++
class Abit { public: Abit(); ~Abit(); protected: private: bool medal;

Инициализация *char в конструкторе - C++
Хай эврибади! class A { private: int a; int b; char *str; public: A() : a(0), b(0) { str = '\0'; }

Инициализация структур и не вывод строчки char* - C++
Это вопрос не вопрос как делать. Это вопрос: &quot;Почему такие результаты&quot;. struct A { char *S; }; int...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
13.04.2013, 18:08     Инициализация char массива #2
1
C++
1
char m_words[]={'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
2
C++
1
char *m_words="1234567890";
Maxim Prishchepa
Эксперт С++
1920 / 1032 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
13.04.2013, 18:09     Инициализация char массива #3
причем тут Qt?
ISergey
13.04.2013, 18:11
  #4

Не по теме:

Цитата Сообщение от l_a_m Посмотреть сообщение
причем тут Qt?
От балды.. куда попало туда и лепят темы..

renok
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 76
14.04.2013, 16:34  [ТС]     Инициализация char массива #5
ок. Запробовал оба способа - ошибка одна на все : "в пределах класса могут быть инициализированы только статические константные данные-члены целого типа"
Вот код класса (угадайте, в какой среде):
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class how : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit how(QWidget *parent = 0);
 
    char *m_words="1234567890";
    char m_words[]={'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
 
    ~how();
    
private:
    Ui::how *ui;
 
public slots:
    void p_Words();
 
};
причем, при объявление статичными - результат неизменен.
nonedark2008
889 / 628 / 126
Регистрация: 28.07.2012
Сообщений: 1,697
14.04.2013, 16:38     Инициализация char массива #6
renok, их нужно ициализировать в конструкторе класса.
Либо объявить их статичными и инициализировать вне класса - например в cpp.
abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
14.04.2013, 16:41     Инициализация char массива #7
причем, при объявление статичными - результат неизменен.
конечно
данные-члены целого типа
char к ним не относится... уберите из класса иницаиализацию, сделайте только описание так:

C++
1
2
         static char *m_words;
         static char m_words[];
а потом вне класса уже в реализации проинциализируйте их

C++
1
2
    static char *how::m_words="1234567890";
    static char how::m_words[]={'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
p.s. и Qt здесь действительно не причём )

Добавлено через 3 минуты
nonedark2008,
renok, их нужно ициализировать в конструкторе класса.
в конструкторе плохо инициализировать static-данные, потому что любой вновь-созданный объект их снова сбросит, static как бы не для этого нужны, они должны быть общие
nonedark2008
889 / 628 / 126
Регистрация: 28.07.2012
Сообщений: 1,697
14.04.2013, 16:46     Инициализация char массива #8
Цитата Сообщение от abit Посмотреть сообщение
в конструкторе плохо инициализировать static-данные
Я это написал для случая, когда renok инициализировал нестатичные члены класса прямо в теле класса.
abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
14.04.2013, 16:48     Инициализация char массива #9
Я это написал для случая, когда renok инициализировал нестатичные члены класса прямо в теле класса.
а, понял)
извиняюсь, с чего-то взял что ему нужны static-данные... сам не знаю с чего
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2013, 16:52     Инициализация char массива
Еще ссылки по теме:

Инициализация графического драйвера: Deprecated conversion from string constant to 'char*' - C++
В общем получил я некий код на компиляцию, но тут тонна ошибок. Кажется последняя из них связана с строками: int graphdriver = DETECT,...

Запись в *char элемента из массива *char[i] - C++
Есть динамический массив, например char *drives = {&quot;A:&quot;, &quot;B:&quot;, &quot;C:&quot;, &quot;D:&quot;, &quot;E:&quot;, &quot;F:&quot;, &quot;G:&quot;, &quot;H:&quot;, &quot;I:&quot;, &quot;J:&quot;, &quot;K:&quot;, &quot;L:&quot;,&quot;M:&quot;, &quot;N:&quot;,...

инициализация массива - C++
Доброго времени. Инициализация массива с указанием размера 80 проходит гладко, при указании допустимого размера 12 выдает ошибку. Почему?

Инициализация массива - C++
Здравствуйте! хм... сначала написал так. POINT p={00,00,10,10,10,10,10,10}; потом подумал, решил написать так. POINT...

Инициализация массива - C++
Есть массив: int d; Есть константа бесконечности (просто константа) inf, равная 2^30. Я попытался проинициализировать массив этой...


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

Или воспользуйтесь поиском по форуму:
nonedark2008
14.04.2013, 16:52     Инициализация char массива
  #10

Не по теме:


Цитата Сообщение от abit Посмотреть сообщение
с чего-то взял что ему нужны static-данные...
Он похоже сам не знает, что ему лучше использовать.

Yandex
Объявления
14.04.2013, 16:52     Инициализация char массива
Ответ Создать тему
Опции темы

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