Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/454: Рейтинг темы: голосов - 454, средняя оценка - 4.72
3 / 3 / 1
Регистрация: 19.07.2008
Сообщений: 142
1

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

15.04.2009, 17:56. Показов 92297. Ответов 31
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте программисты! Набрёл на тему,там используется какой-то typedef, подскажите пожалуйста,что это такое,как с ним работать. И ещё,что такое структуры, не очень что отложилось у меня, где их использовать,как их создавать.
Вроде слышал,что ты создаёшь ею новый тип.
Заранне благодарен за ответ.
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2009, 17:56
Ответы с готовыми решениями:

Для чего используют -1 в программировании
Здравствуйте форумчане, при просмотре примера из книги наткнулся на кусок кода: if (j != -1) { ...

Для чего typedef struct
Часто в "профессиональном" коде вижу - typedef struct MyStruct { // ... } MyStuct; даёт ли...

Для чего используют using внутри метода?
Добрый день, хочу поинтересоваться, для чего используют using внутри метода?

Typedef void F(); typedef для типа функции через идентификатор
Здравствуйте цитата из typedef MSDN в интернете мне удалось нарыть только один конкретный...

31
591 / 357 / 16
Регистрация: 06.02.2009
Сообщений: 1,386
15.04.2009, 18:02 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;
}
1
3 / 3 / 1
Регистрация: 19.07.2008
Сообщений: 142
15.04.2009, 18:10  [ТС] 3
Спасибо,если кто может, дайте пожалуйста больше информации о структуре и typedef.
0
591 / 357 / 16
Регистрация: 06.02.2009
Сообщений: 1,386
15.04.2009, 18:13 4
http://msdn.microsoft.com/ru-r... 85731.aspx
1
Технофашист
228 / 216 / 11
Регистрация: 11.03.2009
Сообщений: 887
15.04.2009, 18:15 5
Лучший ответ Сообщение было отмечено как решение

Решение

typedef используеться для приданию стандартным типам нового имени. пример:
typedef int Lalala;
typedef float FAFafa;
typedef char CACA[55];

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

ясненько?
29
3 / 3 / 1
Регистрация: 19.07.2008
Сообщений: 142
15.04.2009, 18:25  [ТС] 6
Да,с typedef всё ясно,теперь про структуры,желательно своими словами,как вы понмимаете,для чего они,как их и т.д? Заранне благодарен ВАМ за ответ.
1
Технофашист
228 / 216 / 11
Регистрация: 11.03.2009
Сообщений: 887
15.04.2009, 18:36 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
Понятно?
3
3 / 3 / 1
Регистрация: 19.07.2008
Сообщений: 142
15.04.2009, 18:58  [ТС] 8
Вроде понятно,только не могу понять,зачем создавать структуру,с какой целью,можно и так, объявлять переменные , не используя структуру.Может,структура играет какую-то особенную роль?:
0
591 / 357 / 16
Регистрация: 06.02.2009
Сообщений: 1,386
15.04.2009, 19:02 9
Структуры широко использовались в Си, в С++ чаще используют классы.
1
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
15.04.2009, 19:14 10
Лучший ответ Сообщение было отмечено как решение

Решение

Для того,чтобы никакая функция не могла поменять значение переменной,не обратившись по имени к структуре,или к классу.В больших программах это очень важно.Если всё кучей будет лежать,будет большой бардак с данными,а так ты знаешь,какая переменная кому принадлежит,а также есть некая страховка,что переменная не изменится по ошибке.
4
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
15.04.2009, 19:23 11
Цитата Сообщение от prikolist Посмотреть сообщение
Вроде понятно,только не могу понять,зачем создавать структуру,с какой целью,можно и так, объявлять переменные , не используя структуру.
Например, между массивом структур с 15 элементами в каждой и 15 массивами разница заметна.
0
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
15.04.2009, 21:58 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:                              //доступно только в классе
    <данные, методы, свойства, события>
}<список параметров>;
Удачи!
0
Заблокирован
30.11.2010, 23:15 13
Цитата Сообщение от darkAngel Посмотреть сообщение
typedef используеться для приданию стандартным типам нового имени. пример:
typedef int Lalala;
typedef float FAFafa;
typedef char CACA[55];

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

ясненько?
А почему только "стандартным типам"?
Можно и не стандартным (т.е. типам юзверя)
0
0 / 0 / 1
Регистрация: 26.02.2012
Сообщений: 118
18.04.2012, 19:16 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;
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
18.04.2012, 19:37 15
Структурой называется составное данное, элементы которого имеют собственные имена. В собирательном названии элементов не уверен, вроде поля, их типы и имена описываются в типе структуры и у всех структур совпадают. Разные поля одной структуры могут быть как однотипны, так и иметь разные типы, то есть их типы взаимонезависимы, как хочешь, или как требуется по задаче, или как ты это требование понял в своей интерпретации задачи, так и объявляй. Поля структуры вроде бы сами могут быть структурами, но мне не представился случай это проверить, то есть не попалась задача, в которой это было бы нужно. Вроде бы поля структуры могут быть и массивами, но этого я тоже не проверил. Тип структуры декларируется так: пишется слово "struct", имя типа и фигурные скобки, между которыми поля описываются, как обычные переменные. Сама структура - это просто переменная такого типа.
1
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
18.04.2012, 19:40 16
Цитата Сообщение от unreal Посмотреть сообщение
а вы не знаете что означает этот код ??
описание структуры, а что неясно?
0
0 / 0 / 1
Регистрация: 26.02.2012
Сообщений: 118
18.04.2012, 19:44 17
Цитата Сообщение от Jupiter Посмотреть сообщение
описание структуры, а что неясно?
ну вот не ясно почему после имени структуры пишется ети *last; *next; **adj; *sp; *gp
и что они вообще означают особенно **adj;
** это какая то операция ?
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
18.04.2012, 19:49 18
unreal, читайте про указатели
1
0 / 0 / 1
Регистрация: 26.02.2012
Сообщений: 118
18.04.2012, 19:50 19
Цитата Сообщение от Jupiter Посмотреть сообщение
unreal, читайте про указатели
я читал но там тока один * ))
0
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
18.04.2012, 19:51 20
unreal, ** - указатель на указатель
0
18.04.2012, 19:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2012, 19:51
Помогаю со студенческими работами здесь

Для чего используют класс "Стек"?
Подскажите для чего используют класс стек и зачем он вопще нужен?

typedef непонятно чего
Есть вот такой код typedef private void (T::*TimedFunction)(void); По сути это должна быть ссылка...

Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все обьявлять.
Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для...

Typedef для функций
Здравствуйте! В книге Страуструпа в качестве примера приводится typedef для указателей на функции...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru