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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
asiar
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 12
#1

Ссылка, Указатель, Область памяти выделенная оператором new для указателя - C++

13.10.2010, 19:58. Просмотров 1069. Ответов 5
Метки нет (Все метки)

Подскажите пожалуйста, как сделать ссылку на область памяти выделенную оператором new для указателя

читая книгу Джесса Либерти в которой приводятся первые три строчки тела функции main, я решил написать вот такую программу но она не заработала, а я получил сообщения об ошибке
'rInt' : undeclared identifier





C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
int main()
{
    int * pInt=new int;
    if(pInt!=NULL)
    int & rInt=*pInt;
    
    *pInt=67;
    cout<<"*pInt="<<*pInt<<endl;
           cout<<"rInt :"<<rInt;
    
    return 0;
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2010, 19:58     Ссылка, Указатель, Область памяти выделенная оператором new для указателя
Посмотрите здесь:

C++ Инкремент указателя на указатель
Как работает ссылка с объектами, классами и перегруженным оператором [] C++
вызов метода у указателя на указатель на класс C++
C++ Указатель на объект с перегруженным оператором вывода(с наследованием)
C++ Чем ссылка отличается от указателя?
C++ Указатель на конкретную область памяти
C++ Разыменование указателя на указатель
Сколько памяти занимает указатель? Ссылка? C++
Сохранение/Загрузка указателя на указатель типа char C++
C++ Преобразование указателя одного типа в указатель другого
C++ Указатель на объект из указателя на член класса
Выделение памяти для указателя C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Crudelis
Шаровик затейник
 Аватар для Crudelis
669 / 411 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
13.10.2010, 20:05     Ссылка, Указатель, Область памяти выделенная оператором new для указателя #2
а так:
C++
1
int & rInt=pInt;
asiar
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 12
13.10.2010, 20:12  [ТС]     Ссылка, Указатель, Область памяти выделенная оператором new для указателя #3
Цитата Сообщение от Crudelis Посмотреть сообщение
а так:
C++
1
int & rInt=pInt;
так даже объявить не получилось
может адрес адрес помещенный в указатель pInt вообще не int
ааа???

возник сразу еще один вопрос можно ли сделать ссылку на адрес, который хранится в указателе ???(хотя может в этом и необходимости не бывает )
Crudelis
Шаровик затейник
 Аватар для Crudelis
669 / 411 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
13.10.2010, 20:52     Ссылка, Указатель, Область памяти выделенная оператором new для указателя #4
Думаю тут описано понятнее
StUser
11 / 11 / 1
Регистрация: 09.10.2010
Сообщений: 23
13.10.2010, 21:22     Ссылка, Указатель, Область памяти выделенная оператором new для указателя #5
asiar,
Ссылки и указатели тут ни при чем. Просто область видимости 'rInt' только в блоке if.


Правильней так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
int main()
{
    int * pInt=new int;
    if(pInt!=NULL)
    {
        int & rInt=*pInt;
    
        *pInt=67;
        std::cout<<"*pInt="<<*pInt<<std::endl;
           std::cout<<"rInt :"<<rInt;
    }
    return 0;
    
}
KuKu
 Аватар для KuKu
1552 / 1030 / 73
Регистрация: 17.04.2009
Сообщений: 2,968
13.10.2010, 21:34     Ссылка, Указатель, Область памяти выделенная оператором new для указателя #6
C++
1
 int & rInt;
- так вообще писать нельзя. Ссылка сама по себе - это уже указатель существующего объекта. Нельзя декларировать ссылку несуществующего объекта.
Yandex
Объявления
13.10.2010, 21:34     Ссылка, Указатель, Область памяти выделенная оператором new для указателя
Ответ Создать тему
Опции темы

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