Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2010, 20:57   #1
BioS
Пользователь
 
Регистрация: 06.02.2007
Сообщений: 42
По умолчанию Массив как новый тип

как правильно сделать, что массив char[256] определить как новый тип?

хочу как-то так

typedef MyArray char[256];
BioS вне форума Ответить с цитированием
Старый 12.06.2010, 21:07   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2BioS
только через класс/структуру. typedef не определяет новый тип
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 12.06.2010, 21:44   #3
BioS
Пользователь
 
Регистрация: 06.02.2007
Сообщений: 42
По умолчанию

тогда еще один давно иметересующий меня вопрос, полуму, когда пишу что-то вроде

Код:
name[0] = '/0';
компилятор выдает предупреждение

Код:
warning C4305: '=' : truncation from 'int' to 'char'
warning C4309: '=' : truncation of constant value
а

Код:
name[0] = 'f';
без предупреждения
BioS вне форума Ответить с цитированием
Старый 12.06.2010, 21:54   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от BioS Посмотреть сообщение
как правильно сделать, что массив char[256] определить как новый тип?

хочу как-то так

typedef MyArray char[256];
Код:
class MyArray
{
private:
  char items[256];
...
// Реализация нужных операторов
}
Цитата:
Сообщение от BioS Посмотреть сообщение
тогда еще один давно иметересующий меня вопрос, полуму, когда пишу что-то вроде

Код:
name[0] = '/0';
компилятор выдает предупреждение
'/0' - это два символа. Так можно задавать до 4 символов и они будут приводиться к типу int. Я уже не помню зачем это было нужно в языке, но это есть
Код:
int a = 'abcd';
Нужно:
Код:
name[0] = '\0';
pu4koff вне форума Ответить с цитированием
Старый 12.06.2010, 22:46   #5
BioS
Пользователь
 
Регистрация: 06.02.2007
Сообщений: 42
По умолчанию

Код:
name[0] = '\0';
точно. блин, всегда путаю
BioS вне форума Ответить с цитированием
Старый 13.06.2010, 03:27   #6
Kn793
Форумчанин
 
Регистрация: 20.06.2008
Сообщений: 125
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
2BioS
только через класс/структуру. typedef не определяет новый тип
Почему нет?
Код:
typedef char MyArray[586];
Kn793 вне форума Ответить с цитированием
Старый 13.06.2010, 07:44   #7
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
Сообщение от Страуструп
Хорошо это или плохо, но имена, вводимые typedef, являются синонимами, а не новыми типами. Следовательно, старые типы можно использовать совместно с их синонимами. Если вам нужны различные типы с одинаковой семантикой или с одинаковым представлением, обратитесь к перечислениям или классам.
Здесь могла быть ваша реклама
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
в новый массив на делфи Polusha Помощь студентам 2 21.05.2010 15:34
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
из четных чисел исходного массива сформировать новый массив sanya006 Помощь студентам 3 11.11.2009 19:14
Новый тип с зарезервированными словами Alex Cones Общие вопросы Delphi 5 03.06.2009 22:22
из двух заданных массивов В и С одинаковой длины построить новый массив Absent Помощь студентам 4 11.03.2008 21:38