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

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

Войти
Регистрация
Восстановить пароль
 
Destank
99 / 99 / 10
Регистрация: 26.01.2012
Сообщений: 339
Записей в блоге: 1
#1

Указатель на тип данны - C++

14.09.2012, 20:08. Просмотров 544. Ответов 3
Метки нет (Все метки)

Если я правильно понял то:
C++
1
2
3
4
5
struct Vector{
    int x;
    int y;
    
}Ve;
Vector - тип данных такой же как int только самописный,
Ve - переменная этого типа
C++
1
typedef Vector Vec;
теперь Vec точно такой же тип данных как и Vector, непонятно правда зачем такие заморочки, нет бы всегда объявлять переменные через Vector.
C++
1
2
3
4
5
6
7
8
9
10
11
int main(){
    Vector A;
    Vec G;
    
 
    A.x=10;
    Ve.x=6;
    G.x=7;  
 
    return 0;
}
Все переменные объявленные по разному работают одинаково.
Всё бы норм, но что значит
C++
1
typedef Vector *Veee;
указатель на тип данных???
теерь Veee тоже тип как Vector или Vec? ссылка на переменную еще понятна, но на тип вообще как то странно. Как работает такая запись?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2012, 20:08     Указатель на тип данны
Посмотрите здесь:

указатель на неопределенный тип - C++
Можете привести пример простой программы с этим указателем void* p; Я что-то не могу придумать с ним можно сделать..

Указатель и его неопределённый тип - C++
struct SAI_BuMa { int number_BuMa; int counter_BuMa; }; AI.style.pointer = new SAI_BuMa; IF_data_AI >> tmp; ...

Процедурный тип на функцию содержащую указатель на массив - C++
void WriteEl(stack (*temp), float qwerty, int kol) помогите описать указатель на процедуру :(

Как узнать тип, переданный через указатель на void? - C++
есть функция, принимает LPVOID, нужно узнать как тип переменной был передан, и сколько занимает в байтах, подскажите как это сделать

Как создать тип данных указатель в собственном языке программирования? - C++
/*************************************************************/ /* Компилятоp С0 Д.Г. Хохлов 10.04.03 */ /* ...

Ошибка:выражение должно представлять собой указатель на полный тип объекта - C++
Доброго времени суток! Простенький код, но не получается. using namespace std; #include<iostream> int main() { int c1; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
14.09.2012, 20:28     Указатель на тип данны #2
Цитата Сообщение от Destank Посмотреть сообщение
Как работает такая запись?
Работает как "считать, что тип данных Veee это на самом деле Vector* (указатель на Vector)".
DU
1482 / 1058 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
14.09.2012, 20:51     Указатель на тип данны #3
подростете - поймете.
вот один из примеров. есть класс, в котором используется какой-то контейнер, с ним что-то делается, и т.п. везде в коде упоминается тип этого контейнера:
C++
1
2
3
4
5
6
7
class Foo
{
   typedef std::vector<int> Container;
   Container m_container;
   ...
   ...
};
Потом наступает момент, когда вы понимаете, что вектор не подходит, нужен другой контейнер. И вот так заменой одной строки
typedef std::deque<int> Container;
везде внутри класса уже дек используется. Если не использовались какие-то особые фичи вектора, которых нет у дека - то на этом писанина заканчивается. Все исправилось. Все таки, скорее всего все равно придется код поредактировать, но работы уже меньше.



Еще можно привести аналогию с магическими числами и именованной константой вместо нее.

всюду в коде может встречатся какое-нибудь магическое число, которое с первого взгляда непонятно что означает. например 256. Но вот если заменить 256 на именованную константу вроде
const unsigned MAX_BUFFER_SIZE = 256 и ее использовать - то снатонвится все понятнее. Вот в такой аналогии std::vector<int> - магический тип, а typedef std::deque<int> Container - ввод именованного типа. Container - не очень удачное название но все же.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2012, 21:11     Указатель на тип данны
Еще ссылки по теме:

Как получить ссылку на указатель или указатель на указатель в массиве? - C++
В процессе реализации сортировки пузырьком натолкнулся на такую проблему: как поменять значения указателей, передаваемых в функцию. Если...

Создать абстрактный тип данных (структура) — вектор, который имеет указатель на int и число элементов - C++
Создать абстрактный тип данных (структура) - вектор, который имеет указатель на int и число элементов. Определить функции: инициализации,...

Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка? - C++
Друзья! В общем, надо реализовать связный список и понятно, последний элемент должен содержать адрес NULL, вот ломаю голову как это...

Как объявить указатель на массив через typedef и как инициализировать такой тип - C++
Как заставить заработать этот фрагмент кода? INT_L -- указатель на массив из 100 элементов типа char; Не получается в переменную C...


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

Или воспользуйтесь поиском по форуму:
Destank
99 / 99 / 10
Регистрация: 26.01.2012
Сообщений: 339
Записей в блоге: 1
14.09.2012, 21:11  [ТС]     Указатель на тип данны #4
Ооо, я стек и очередь пытаюсь понять, запнулся на указателе на тип, а вы уже ооп грузите ...
Yandex
Объявления
14.09.2012, 21:11     Указатель на тип данны
Ответ Создать тему
Опции темы

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