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

Для чего используют typedef? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 421, средняя оценка - 4.66
prikolist
2 / 2 / 0
Регистрация: 19.07.2008
Сообщений: 142
15.04.2009, 17:56     Для чего используют typedef? #1
Здравствуйте программисты! Набрёл на тему,там используется какой-то typedef, подскажите пожалуйста,что это такое,как с ним работать. И ещё,что такое структуры, не очень что отложилось у меня, где их использовать,как их создавать.
Вроде слышал,что ты создаёшь ею новый тип.
Заранне благодарен за ответ.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RazorQ
 Аватар для RazorQ
574 / 341 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
15.04.2009, 18:02     Для чего используют typedef? #2
Цитата Сообщение от prikolist Посмотреть сообщение
что такое структуры
Структуры используются для объединения данных. Вот простая структура:
C++
1
2
3
4
struct card
{
  int number; 
};
Она содержит только одну переменную.
В программе к ней можно обращаться так
C++
1
2
3
4
5
void main(){
card cr;
cr.number = 10;
return;
}
prikolist
2 / 2 / 0
Регистрация: 19.07.2008
Сообщений: 142
15.04.2009, 18:10  [ТС]     Для чего используют typedef? #3
Спасибо,если кто может, дайте пожалуйста больше информации о структуре и typedef.
RazorQ
 Аватар для RazorQ
574 / 341 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
15.04.2009, 18:13     Для чего используют typedef? #4
http://msdn.microsoft.com/ru-ru/library/bb385731.aspx
darkAngel
Технофашист
206 / 187 / 3
Регистрация: 11.03.2009
Сообщений: 829
15.04.2009, 18:15     Для чего используют typedef? #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
typedef используеться для приданию стандартным типам нового имени. пример:
typedef int Lalala;
typedef float FAFafa;
typedef char CACA[55];

Теперь дальше их своей программы ты можеш ьсоздавать переменные этих типов:
Lalala b; // СОздаётся переменная b типа int
CACA str[10]; // Массив типа char из 10 элеметов, в каждом из которых ещё по 55 элементов типа char

ясненько?
prikolist
2 / 2 / 0
Регистрация: 19.07.2008
Сообщений: 142
15.04.2009, 18:25  [ТС]     Для чего используют typedef? #6
Да,с typedef всё ясно,теперь про структуры,желательно своими словами,как вы понмимаете,для чего они,как их и т.д? Заранне благодарен ВАМ за ответ.
darkAngel
Технофашист
206 / 187 / 3
Регистрация: 11.03.2009
Сообщений: 829
15.04.2009, 18:36     Для чего используют typedef? #7
Структуры использую для хранения разнотипных данных.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Объявление структуры.
struct dom      // Структура dom
{
int etaji;
int komnati;  // ПОля структуры
string name;
float vozrast;
}
 
Теперь нужно создать объекты нашей структуры. Объекты это экземпляры структуры
dom a, b, c;  // Создаём 3 объекта 
 
// А так мы получаем доступ к полям (данным) этих объектов.
a.komnati = 5;   // количество комнат у дома а равно 5
a.name = "blablabla";  // имя дома a - blablabla
a.vozrast = 56.4;
b.name = "bbbbb";  // имя дома b - bbbbb
с.etaji = 17;          // этажей в доме с - 17
 
//МОжно делать так:
b.vozrast = a.vozrast; // т.е. возроаст дома b такой же как и у a , и равне 56,4
Понятно?
prikolist
2 / 2 / 0
Регистрация: 19.07.2008
Сообщений: 142
15.04.2009, 18:58  [ТС]     Для чего используют typedef? #8
Вроде понятно,только не могу понять,зачем создавать структуру,с какой целью,можно и так, объявлять переменные , не используя структуру.Может,структура играет какую-то особенную роль?:
RazorQ
 Аватар для RazorQ
574 / 341 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
15.04.2009, 19:02     Для чего используют typedef? #9
Структуры широко использовались в Си, в С++ чаще используют классы.
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
15.04.2009, 19:14     Для чего используют typedef? #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Для того,чтобы никакая функция не могла поменять значение переменной,не обратившись по имени к структуре,или к классу.В больших программах это очень важно.Если всё кучей будет лежать,будет большой бардак с данными,а так ты знаешь,какая переменная кому принадлежит,а также есть некая страховка,что переменная не изменится по ошибке.
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
15.04.2009, 19:23     Для чего используют typedef? #11
Цитата Сообщение от prikolist Посмотреть сообщение
Вроде понятно,только не могу понять,зачем создавать структуру,с какой целью,можно и так, объявлять переменные , не используя структуру.
Например, между массивом структур с 15 элементами в каждой и 15 массивами разница заметна.
mirso
523 / 341 / 17
Регистрация: 05.04.2009
Сообщений: 709
15.04.2009, 21:58     Для чего используют typedef? #12
prikolist! Привет!

Почему книжки по программированию
не разбросаны по всему городу,
а находятся в библиотеке Государственного Университета,
на специально зарезервированных полках,
имеющие специализированные подписи,
Каждая книга имеет определенный объем страниц,
Текст в каждой книге разделен на определенные
авторами разделы тематик,
Разделы, соответственно, делятся на группы,
Текст на страницах имеет разный шрифт и размер?
Неделимой единицей информации в этой структуре
Является буква!
Букв "много".
можно и так, объявлять переменные , не используя структуру
Смогли бы вы объявить хотя бы "немного" переменных
в задаче о книгах, не используя структуру в Си,
или класс в с++?

Структура и класс это одно и тоже,
только Страуструп придумал свои функции
манипулирования со структурными данными,
облегчающие жизнь для будущих поколений программистов.
Этими функциями сейчас и пользуются.

prikolist! Если неохота создавать структуру - пользуйтесь классами.
Ctrl+j - автоматическое создание шаблона класса.

Добавлено через 1 час 33 минуты 29 секунд
С typedef, я вижу ты разобрался!
C++
1
книжки по программированию ... в библиотеке Государственного Университета
prikolist! У тебя, что(!), дома ни одной книжки нет по классам:'(?!
Закатай любой пример, и раскатывай его по кучкам.
Проникновенно!!!

Показатель освоения - желание расширить класс!
Только не спеши, если и вправду хочешь уяснить.
C++
1
2
3
4
5
6
7
8
9
10
11
class <имя класса> : <список классов - родителей>
{
  public:                               //доступно всем
    <данные, методы, свойства, события>
  __published:                          //видны в инспекторе объектов и изменяемы
      <данные, свойства>
  protected:                            //доступно только потомкам
    <данные, методы, свойства, события>
  private:                              //доступно только в классе
    <данные, методы, свойства, события>
}<список параметров>;
Удачи!
Доктор ТуамОсес
Заблокирован
30.11.2010, 23:15     Для чего используют typedef? #13
Цитата Сообщение от darkAngel Посмотреть сообщение
typedef используеться для приданию стандартным типам нового имени. пример:
typedef int Lalala;
typedef float FAFafa;
typedef char CACA[55];

Теперь дальше их своей программы ты можеш ьсоздавать переменные этих типов:
Lalala b; // СОздаётся переменная b типа int
CACA str[10]; // Массив типа char из 10 элеметов, в каждом из которых ещё по 55 элементов типа char

ясненько?
А почему только "стандартным типам"?
Можно и не стандартным (т.е. типам юзверя)
unreal
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 118
18.04.2012, 19:16     Для чего используют typedef? #14
Цитата Сообщение от darkAngel Посмотреть сообщение
typedef используеться для приданию стандартным типам нового имени. пример:
typedef int Lalala;
typedef float FAFafa;
typedef char CACA[55];

Теперь дальше их своей программы ты можеш ьсоздавать переменные этих типов:
Lalala b; // СОздаётся переменная b типа int
CACA str[10]; // Массив типа char из 10 элеметов, в каждом из которых ещё по 55 элементов типа char

ясненько?
а вы не знаете что означает этот код ??
C++
1
2
3
4
5
6
7
8
9
10
11
typedef struct VERTEX {
 struct VERTEX    *last;
 struct VERTEX    *next;
 struct VERTEX    **adj;
 struct SKELETON  *sp;
 struct MAPGLUE   *gp;
 char   status,pad;
 unsigned short id,n;
 float  p[3];
 long   xyz[3];
} vertex;
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.04.2012, 19:37     Для чего используют typedef? #15
Структурой называется составное данное, элементы которого имеют собственные имена. В собирательном названии элементов не уверен, вроде поля, их типы и имена описываются в типе структуры и у всех структур совпадают. Разные поля одной структуры могут быть как однотипны, так и иметь разные типы, то есть их типы взаимонезависимы, как хочешь, или как требуется по задаче, или как ты это требование понял в своей интерпретации задачи, так и объявляй. Поля структуры вроде бы сами могут быть структурами, но мне не представился случай это проверить, то есть не попалась задача, в которой это было бы нужно. Вроде бы поля структуры могут быть и массивами, но этого я тоже не проверил. Тип структуры декларируется так: пишется слово "struct", имя типа и фигурные скобки, между которыми поля описываются, как обычные переменные. Сама структура - это просто переменная такого типа.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
18.04.2012, 19:40     Для чего используют typedef? #16
Цитата Сообщение от unreal Посмотреть сообщение
а вы не знаете что означает этот код ??
описание структуры, а что неясно?
unreal
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 118
18.04.2012, 19:44     Для чего используют typedef? #17
Цитата Сообщение от Jupiter Посмотреть сообщение
описание структуры, а что неясно?
ну вот не ясно почему после имени структуры пишется ети *last; *next; **adj; *sp; *gp
и что они вообще означают особенно **adj;
** это какая то операция ?
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
18.04.2012, 19:49     Для чего используют typedef? #18
unreal, читайте про указатели
unreal
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 118
18.04.2012, 19:50     Для чего используют typedef? #19
Цитата Сообщение от Jupiter Посмотреть сообщение
unreal, читайте про указатели
я читал но там тока один * ))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2012, 19:51     Для чего используют typedef?
Еще ссылки по теме:

C++ Для чего typedef struct
Как правильно пользоваться typedef для декларации типа указателя на функцию? C++
Для чего используют класс "Стек"? C++

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

Или воспользуйтесь поиском по форуму:
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
18.04.2012, 19:51     Для чего используют typedef? #20
unreal, ** - указатель на указатель
Yandex
Объявления
18.04.2012, 19:51     Для чего используют typedef?
Ответ Создать тему
Опции темы

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