Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Константный массив-член 
:(
    Опции темы
Fedor
Дата 24.12.2005, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



То ли я вообще туплю, то ли что... короче, нужно сделать константный массив - член класса.
Пытаюсь писать так:
Код

//...
private:
   const char massiv[4];
//...


Как потом инициализировать его значения? В конструкторе вроде не получается... Или это у меня руки кривые?


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
chipset
Дата 24.12.2005, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



1. Использовать дефолтную инициализацию:
Код

class A {
private:
const char arr[5];
A () : arr() {
}
};

2. Снимать константность const_cast.
3. Пересмотреть задачу так чтобы эти нехорошие методы не использовать smile


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Partizan
Дата 24.12.2005, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 4
Всего: 67



Может не самое лучшее решение, но я в своё время делал подобным образом:
Код

//---------------------------------------------------------------------------
#include <iostream.h>
#include <conio.h>
#pragma hdrstop

class MyClass

{
 private:
  const char *array;
  const int a;
 public:
  MyClass(char arr[4]) : array(arr) {};
  ShowArr();
};

MyClass :: ShowArr()
{
 cout << array[0] << endl;
 cout << array[1] << endl;
 cout << array[2] << endl;
 cout << array[3] << endl;
}

//---------------------------------------------------------------------------

#pragma argsused
void main()
{
  char InitialArray[4]={'1','2','3','4'};
  MyClass Var(InitialArray);
  Var.ShowArr();
  getch();
}
//---------------------------------------------------------------------------



--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
threef
Дата 26.12.2005, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 27.10.2005
Где: Запорожье

Репутация: 9
Всего: 10



Код


char *hello="hel";
class A
{
const char *a;    
public:
A():a(hello)
{
}
};


С массивом что-то по синтаксису непруха. И const_cast не помогает smile
PM MAIL   Вверх
Fedor
Дата 26.12.2005, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



Да все, я обошел эту проблему - статиком сделал.
Добавлено @ 21:34
Всем спасибо за помощь


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0554 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.