Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2010, 18:37   #21
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

разве у нас в имя переменной входит *?
я же специально в скобках написал, чтоб понятно было что раименовывание указателя идет.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.06.2010, 19:26   #22
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию

Переменная-указатель хранит адрес создаваемого объекта вы имели ввиду, номер адреса в куче-части оп. памяти - это имя объекта?
Golovastik вне форума Ответить с цитированием
Старый 05.06.2010, 19:37   #23
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
номер адреса - это имя объекта?
Чё? О_о
Указатель - это такой тип переменной, который хранит в себе указатель на область памяти. Точнее, указатель на одну точку в памяти, начиная с которой идет область памяти. Компилятор знает, сколько памяти выделяется объект каждого типа (void* и динамические массивы не в счет), поэтому указатель на точку в памяти мы отождествляем с указателем на область памяти. В этой области сидит какой-то объект, имя которого никак и звать который никто. Его вообще никак не зовут, только у компилятора где-то там записано, в какой камере кто сидит, и то только для того, чтобы составлять для каждого индивидуальные задания (присвоить, сложить, напечатать, разыменовать и т.д.) А адрес - это такая циферка, которая и есть адрес. Этому адресу вообще ультрафиолетово, кто в нем живет, лишь бы квартплату платили и соседей не затапливали. Так что пытаться отождествить цифру адреса и имя какого-то объекта глупо, тем более что сегодня по адресу 0x000000FF живут Ивановы, завтра - Петровы, а послезавтра - студенты театрального ВУЗа Страуструп, Керниган, Ритчи и Кнут.
Отсюда вывод - курите книги и мануалы до полного понимания.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 05.06.2010, 19:55   #24
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию

Код:
class olovo{
private: 
int z;
public:
		 void f()
		 {
			 z=3;
			 cout<<z;
		 }
};
int main()
{
	olovo * ob1 = new olovo;
	ob1->f();
	cin.get();
}
Например такой код. Мы можем сказать что переменная ob1 указывает на адрес памяти по которому лежит объект f()?
объект по которому лежит функция
Golovastik вне форума Ответить с цитированием
Старый 05.06.2010, 20:40   #25
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

По адресу, хранящемуся в переменной ob1 располагается область памяти, занимаемая объектом типа olovo (говоря упрощенно - по данному адресу располагается объект типа olovo). У этого объекта есть функция член f(), к которой можно получить доступ двумя одинаковыми способами:
Код:
ob1 -> f();
(*ob1).f();
По адресу располагается объект а не какой-то (КАКОЙ???) из его членов. Две вышеприведенные конструкции (вообще-то идентичные) означают следующее: берем переменную ob1, содержащую адрес на объект типа olovo, разыменовываем этот указатель (т.е. переходим к объекту, расположенному по адресу, указанному в переменной ob1), затем вызываем функцию-член этого объекта.
Цитата:
объект по которому лежит функция
Сумасшедшая конструкция...
Указатель - это указатель, объект - это объект. Да, указатель - это тоже объект типа "указатель", но это другой вопрос.
Правильно сказать примерно так:
Адрес, по которому лежит объект, имеющий функцию-член.

Еще раз для закрепления - по указателю на объект мы обращаемся к самому объекту, и только достучавшись до объекта мы обращаемся к самому объекту с просьбой вызвать его функцию.
Приоритет операторов - такой, как указан во второй строчке вышеприведенного кода.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 05.06.2010, 21:18   #26
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
По умолчанию

Спс, теперь думаю что понятно. Нужно будет распечатать твой ответ, для справки будет.

Последний раз редактировалось Golovastik; 05.06.2010 в 21:21.
Golovastik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление динамических объектов / полная очистка формы 095 Общие вопросы Delphi 3 23.04.2012 16:09
События для объектов динамических массивов Delphi7 Dalagardi Помощь студентам 7 24.03.2010 08:59
Проблема с созданием динамических объектов. (Delphi7) Dalagardi Помощь студентам 2 15.03.2010 17:15
Имя динамических объектов PVD Общие вопросы Delphi 26 09.02.2010 15:38
Процедуры для динамических объектов Fruit Общие вопросы Delphi 8 30.12.2008 21:10