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

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

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

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

14.09.2012, 20:08. Просмотров 634. Ответов 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? ссылка на переменную еще понятна, но на тип вообще как то странно. Как работает такая запись?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2012, 20:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатель на тип данны (C++):

указатель на неопределенный тип - 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++
Есть абстрактный базовый класс и два производных: class Base { protected: int A; }; class Child1 : public Base {

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

3
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
14.09.2012, 20:28 #2
Цитата Сообщение от Destank Посмотреть сообщение
Как работает такая запись?
Работает как "считать, что тип данных Veee это на самом деле Vector* (указатель на Vector)".
0
DU
1484 / 1130 / 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 - не очень удачное название но все же.
0
Destank
99 / 99 / 10
Регистрация: 26.01.2012
Сообщений: 341
Записей в блоге: 1
14.09.2012, 21:11  [ТС] #4
Ооо, я стек и очередь пытаюсь понять, запнулся на указателе на тип, а вы уже ооп грузите ...
0
14.09.2012, 21:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2012, 21:11
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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