Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> int *& a,int *const &a, int *& const a, ...и другие мифические герои языка С++ 
:(
    Опции темы
rukudias
Дата 30.9.2008, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 28.2.2007

Репутация: 0
Всего: 0



Привет Всем!
Хотелось бы раз и на всегда покончить с пробелов в области знаний "типы переменных!"
и так гуру засидатели проводящие собеседование в конторах ИТ шных!
 ответ плиз в форме что такое для чего необходимо.
Код


int*& с ;//ссылка на указатель или указ на ссылку?,примен как аргумент функции дает возможность  изменить значения указателя

int* const & a;

int *&const a;
 

Зарание СПАСИБО!

PM MAIL   Вверх
vinter
Дата 30.9.2008, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Код

int*& с ;//ссылка на указатель

int* const & a;//  ссылка на константный указатель

int *&const a; // константная ссылка на указатель



--------------------
Мой блог
PM MAIL WWW   Вверх
J0ker
Дата 1.10.2008, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 4
Всего: 14



http://worldcpp.vingrad.ru/
Сложные конструкции

Код

int *&const a;

const лишний в этой конструкции, т.к. ссылки константны по своей природе.

вот вам для разминки
Код

typedef unsigned long long*(&(*t)(unsigned int*(&(*)(unsigned char*(&)[12]))[3]))[8];

 smile

Добавлено через 14 минут и 20 секунд
ну и естественно все три примера компилиться не будут - они должны быть либо инициализированны, либо в классе с инициализацией в списке конструктора


--------------------
user posted image
PM MAIL   Вверх
UnrealMan
Дата 1.10.2008, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(J0ker @  1.10.2008,  01:50 Найти цитируемый пост)
ну и естественно все три примера компилиться не будут

Только третий не будет, т.к. const-ссылки запрещены.

Цитата(J0ker @  1.10.2008,  01:50 Найти цитируемый пост)
они должны быть либо инициализированны, либо в классе

Ну дык это ж фрагменты кода, а не законченная программа smile

Цитата(J0ker @  1.10.2008,  01:50 Найти цитируемый пост)
с инициализацией в списке конструктора

Необязательно с инициализацией и необязательно с инициализацией именно в конструкторе.

Это сообщение отредактировал(а) UnrealMan - 1.10.2008, 12:02
PM MAIL   Вверх
SABROG
Дата 1.10.2008, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 4
Всего: 91



Об этом же пишут в книгах. Пункт 5.3 стандарта - Unary Expressions. Правило чтения "справа налево" действует для выражений с унарными операторами: *  &  +  -  !  ~
Например ++/-- не являются унарными операторами, они являются "унарными выражениями-приведения", поэтому следующие записи следует рассматривать слева-направо:

Код

int val;
val++; //сначала используем значение, а потом его увеличиваем на 1
++val; //сначала увеличиваем значение на 1, а потом используем его



--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
J0ker
Дата 1.10.2008, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 4
Всего: 14



Цитата(UnrealMan @  1.10.2008,  12:01 Найти цитируемый пост)
Необязательно с инициализацией и необязательно с инициализацией именно в конструкторе.

вы про агрегированные типы или я еще чего-то не знаю?


--------------------
user posted image
PM MAIL   Вверх
UnrealMan
Дата 1.10.2008, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(J0ker @  1.10.2008,  17:22 Найти цитируемый пост)
вы про агрегированные типы или я еще чего-то не знаю? 

Я про случаи, когда ссылка является членом класса.
PM MAIL   Вверх
J0ker
Дата 1.10.2008, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 4
Всего: 14



Цитата(UnrealMan @ 1.10.2008,  17:37)
Цитата(J0ker @  1.10.2008,  17:22 Найти цитируемый пост)
вы про агрегированные типы или я еще чего-то не знаю? 

Я про случаи, когда ссылка является членом класса.

если ссылка явяется не статик членом класса (который не является агрегированным типом) - то она должна быть инициализированна в списке иницализации конструктора
иначе  smile 


--------------------
user posted image
PM MAIL   Вверх
UnrealMan
Дата 1.10.2008, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(J0ker @ 1.10.2008,  20:28)
иначе  smile

1) если объекты класса не создаются, то инициализировать ссылку не нужно
2) при создании объекта класса-агрегата его члены-ссылки можно проинициализировать списком инициализации для агрегатов:

Код
struct A
{
    int &ref;
};

int main()
{
    int n;
    A a = {n};
}

PM MAIL   Вверх
J0ker
Дата 1.10.2008, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 4
Всего: 14



Цитата(UnrealMan @  1.10.2008,  23:05 Найти цитируемый пост)
1) если объекты класса не создаются, то инициализировать ссылку не нужно

ну это понятно
непонятно нафига такие классы
...ой, про абстракные забыл  smile но согласитесь - смешивать реализацию и интерфейс не очень хороший стиль  smile 

Цитата(UnrealMan @  1.10.2008,  23:05 Найти цитируемый пост)
2) при создании объекта класса-агрегата его члены-ссылки можно проинициализировать списком инициализации для агрегатов:

мммм  smile  - 
Цитата(J0ker @  1.10.2008,  16:22 Найти цитируемый пост)
вы про агрегированные типы или я еще чего-то не знаю? 

резюмирую - эту часть я знаю  smile 

Это сообщение отредактировал(а) J0ker - 1.10.2008, 23:46


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0513 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.