Ссылки — это автоматически разыменовываемые указатели. Практически полный аналог (*obj). И реализуются они в 99.99% (если не 100%) через указатели.
Почему ссылки запретили явно переустанавливать не ясно, в итоге функциональность пострадала, а плюсов не видно.
При желании можно изменить ссылку вполне легально.
string s[3];
s[0] = "1";
s[1] = "2";
s[2] = "3";
int i = 0;
reseat_reference: const string &ref = s[i];
kon << ref;
i++;
if (i <= 2)
{
goto reseat_reference;
}
Результат: 123 в консоли.
Кстати, а для чего и зачем C++ используешь?
Первый раз в образовательных целях. Простейший сервер, выдающий по прямому запросу текущее изображение рабочего стола в jpg-формате. Второй раз были лабораторные студентам.
Сейчас начал переписывать модуль с Делфи на С++, виртуализирующий набор WinAPI для работы с файловой системой. В результате можно подключать любые папки в качестве корневого каталога программы для реализации системы модов. Ещё не дописал.
Сейчас нужно сделать эмулятор работы терминала банка и самого банка для студентов в рамках изучения дисциплины «Проектирование информационных систем» и генерации кода из UML-диаграм в Rational Rose 2003.