Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
99 / 99 / 27
Регистрация: 26.01.2012
Сообщений: 342
Записей в блоге: 1
1

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

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

Author24 — интернет-сервис помощи студентам
Если я правильно понял то:
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? ссылка на переменную еще понятна, но на тип вообще как то странно. Как работает такая запись?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.09.2012, 20:08
Ответы с готовыми решениями:

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

Указатель на пользовательский тип
Чёто туплю, почему когда передаёшь переменную (например int) параметром через адрес в функцию...

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

Нюансы синтаксиса: указатель на пользовательский тип
скажите пожалуйста уважаемые форумчане , какая разница будет в этом? #include <iostream> ...

3
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
14.09.2012, 20:28 2
Цитата Сообщение от Destank Посмотреть сообщение
Как работает такая запись?
Работает как "считать, что тип данных Veee это на самом деле Vector* (указатель на Vector)".
0
DU
1500 / 1146 / 165
Регистрация: 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 - не очень удачное название но все же.
0
99 / 99 / 27
Регистрация: 26.01.2012
Сообщений: 342
Записей в блоге: 1
14.09.2012, 21:11  [ТС] 4
Ооо, я стек и очередь пытаюсь понять, запнулся на указателе на тип, а вы уже ооп грузите ...
0
14.09.2012, 21:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.09.2012, 21:11
Помогаю со студенческими работами здесь

Указатель типа базового класса на тип наследника
Встретил примерно такое: // Example program #include &lt;iostream&gt; #include &lt;string&gt; using...

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

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

Как вернуть указатель на любой тип данных из функции
Подскажите пожалуйста как решить данную проблему? Нужно вернуть указатель из функции но мы не знаем...

Как изменить тип объекта, на который указывает указатель?
Есть абстрактный базовый класс и два производных: class Base { protected: int A; }; class...

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


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

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