![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 25.09.2008
Сообщений: 40
|
![]()
Объясните бестолковому зачем указателю нужен тип, ведь он всеравно принимает тип того объекта, на который указывает((
|
![]() |
![]() |
![]() |
#2 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
![]()
ну хотя бы для разыменовки указателя. откуда компилятор будет знать, сколько байт из памяти считать?
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 25.09.2008
Сообщений: 40
|
![]() Цитата:
Если B наследник класса А то myA будет иметь только то, что есть внутри А, а если так: B * myA = new B, то myA будет иметь тоже самое+то, что есть в классе B. Значит тип указателя здесь тоже для чего-то нужен. я прав? |
|
![]() |
![]() |
![]() |
#4 | |
...
Форумчанин
Регистрация: 01.06.2008
Сообщений: 134
|
![]() Цитата:
С++ - язык строгой статической типизации. Да. Тип говорит компилятору, что можно делать с объектом. P.S. еще раз настоятельно советую сменить книгу, по которой учитесь. Последний раз редактировалось filosof_x86; 30.09.2008 в 00:41. |
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 25.09.2008
Сообщений: 40
|
![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 21.09.2008
Сообщений: 10
|
![]()
указателю нужен тип объекта для того, 4тобы знать на сколько байтов передвигаться в памяти до след. объекта, ведь они(объекты) могут иметь разный размер, например:
1) char *s 2) long int *s в первом случае указатель s имеет тип char, размер кот. равен 1 byte, поэтому компилятор должен увеличить указатель на 1 byte, чтобы получить след.объект. во втором случае указатель s имеет тип long(long int), размер кот. равен 4 byte, поэтому компилятор должен увеличить указатель на 4 byte, чтобы перейти к след.объекту. если бы компилятор не знал типа объекта во втором случае и увеличил указатель на 1 byte, то тогда это не будет след.объектом, а будет просто мусором или это будут 2,3,4 байты первого объекта + 1-ый байт след.объекта. ПС: все это справедливо, если память продолжительная/последовательная: memory: | 1st byte | 2nd byte | 3rd byte | ... | ... | n-th byte | Последний раз редактировалось Gaspar312; 30.09.2008 в 11:53. |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача данных в функцию по указателю | Игорь007 | Общие вопросы C/C++ | 2 | 23.06.2008 20:17 |
Зачем принтеру процессор? | Иллидан | Компьютерное железо | 6 | 21.05.2008 20:11 |
данные о видеосистеме: тип видеоадаптера, тип монитора, режим монитора: разрешение, частота обновления | WaxeP | Win Api | 9 | 15.04.2007 18:12 |
как вызвать в Dll по указателю функцию, которая определена в главном потоке? | SaintRain | Общие вопросы Delphi | 1 | 25.11.2006 08:27 |