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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 421, средняя оценка - 4.66
prikolist
3 / 3 / 0
Регистрация: 19.07.2008
Сообщений: 142
#1

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

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

Здравствуйте программисты! Набрёл на тему,там используется какой-то typedef, подскажите пожалуйста,что это такое,как с ним работать. И ещё,что такое структуры, не очень что отложилось у меня, где их использовать,как их создавать.
Вроде слышал,что ты создаёшь ею новый тип.
Заранне благодарен за ответ.
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2009, 17:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Для чего используют typedef? (C++):

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

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

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

typedef непонятно чего - C++
Есть вот такой код typedef private void (T::*TimedFunction)(void); По сути это должна быть ссылка на функцию класса Т с возвращаемым...

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

Typedef для функций - C++
Здравствуйте! В книге Страуструпа в качестве примера приводится typedef для указателей на функции например: typedef void(*SIG_TYP)...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
RazorQ
577 / 344 / 9
Регистрация: 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
prikolist
3 / 3 / 0
Регистрация: 19.07.2008
Сообщений: 142
15.04.2009, 18:10  [ТС] #3
Спасибо,если кто может, дайте пожалуйста больше информации о структуре и typedef.
0
RazorQ
577 / 344 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
15.04.2009, 18:13 #4
http://msdn.microsoft.com/ru-ru/library/bb385731.aspx
1
darkAngel
Технофашист
215 / 198 / 4
Регистрация: 11.03.2009
Сообщений: 865
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

ясненько?
23
prikolist
3 / 3 / 0
Регистрация: 19.07.2008
Сообщений: 142
15.04.2009, 18:25  [ТС] #6
Да,с typedef всё ясно,теперь про структуры,желательно своими словами,как вы понмимаете,для чего они,как их и т.д? Заранне благодарен ВАМ за ответ.
1
darkAngel
Технофашист
215 / 198 / 4
Регистрация: 11.03.2009
Сообщений: 865
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
prikolist
3 / 3 / 0
Регистрация: 19.07.2008
Сообщений: 142
15.04.2009, 18:58  [ТС] #8
Вроде понятно,только не могу понять,зачем создавать структуру,с какой целью,можно и так, объявлять переменные , не используя структуру.Может,структура играет какую-то особенную роль?:
0
RazorQ
577 / 344 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
15.04.2009, 19:02 #9
Структуры широко использовались в Си, в С++ чаще используют классы.
1
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
15.04.2009, 19:14 #10
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Для того,чтобы никакая функция не могла поменять значение переменной,не обратившись по имени к структуре,или к классу.В больших программах это очень важно.Если всё кучей будет лежать,будет большой бардак с данными,а так ты знаешь,какая переменная кому принадлежит,а также есть некая страховка,что переменная не изменится по ошибке.
4
Somebody
2789 / 1603 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
15.04.2009, 19:23 #11
Цитата Сообщение от prikolist Посмотреть сообщение
Вроде понятно,только не могу понять,зачем создавать структуру,с какой целью,можно и так, объявлять переменные , не используя структуру.
Например, между массивом структур с 15 элементами в каждой и 15 массивами разница заметна.
0
mirso
525 / 343 / 17
Регистрация: 05.04.2009
Сообщений: 709
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
unreal
0 / 0 / 0
Регистрация: 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
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.04.2012, 19:37 #15
Структурой называется составное данное, элементы которого имеют собственные имена. В собирательном названии элементов не уверен, вроде поля, их типы и имена описываются в типе структуры и у всех структур совпадают. Разные поля одной структуры могут быть как однотипны, так и иметь разные типы, то есть их типы взаимонезависимы, как хочешь, или как требуется по задаче, или как ты это требование понял в своей интерпретации задачи, так и объявляй. Поля структуры вроде бы сами могут быть структурами, но мне не представился случай это проверить, то есть не попалась задача, в которой это было бы нужно. Вроде бы поля структуры могут быть и массивами, но этого я тоже не проверил. Тип структуры декларируется так: пишется слово "struct", имя типа и фигурные скобки, между которыми поля описываются, как обычные переменные. Сама структура - это просто переменная такого типа.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2012, 19:37
Привет! Вот еще темы с ответами:

Typedef для переменной - C++
Добрый день. Есть примерно такая переменная:myScruct.someVal.val.objectЯ все это длинное и неудобное безобразие хочу обозначить...

Как правильно пользоваться typedef для декларации типа указателя на функцию? - C++
Мне нужны будут функции, принимающие параметр-указатель на функции с одним и тем же списком параметров и возвращаемым типом. Как правильно...

Как используют макросы? - C++
Здраствуйте, в моем блоге форумчанин с ником Evg посоветовал использовать макрос для вот такой конструкции: i f ( k e y s &amp; ( 0 x 1...

typedef в c++ - C++
Здравствуйте! Нужно собрать полную информацию по оператору typedef в c++. Пока нашел, что typedef используется для задания новых...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.04.2012, 19:37
Ответ Создать тему
Опции темы

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