Вот страницы, на которые я каждый день заглядываю и иногда общаюсь с участниками (если могу помочь советом):
http://www.rsdn.ru/forum/apple.os/
http://touchdev.ru/
http://habrahabr.ru/blogs/macosxdev/
Показаны сообщения с ярлыком ссылки. Показать все сообщения
Показаны сообщения с ярлыком ссылки. Показать все сообщения
четверг, 18 августа 2011 г.
вторник, 27 апреля 2010 г.
Интересные материалы для C++ программистов в блоге "Алёна C++"
Очень интересные материалы найдут для себя C++ программисты в блоге Алёны Сагалаевой:
http://alenacpp.blogspot.com/
Например, я только что нашёл интересный пример о константных ссылках (в свою очередь Алёна нашла этот пример в блоге знаменитого Герба Саттера http://herbsutter.spaces.live.com/blog/cns!2D4327CC297151BB!378.entry):
ЦИТИРУЮ ИЗ БЛОГА АЛЁНЫ (http://alenacpp.blogspot.com/2008/01/const.html):
Код несколько напрягает. Создается ссылка на временный объект. Но тем не менее, с кодом все в порядке. Почему так? Потому что в С++ явно специфицировано, что если привязать временный объект к ссылке на const в стеке, то жизнь временного объекта будет продлена. Теперь он будет жить столько, сколько живет константная ссылка на него. В приведенном примере все валидно, время жизни s заканчивается с закрывающей фигурной скобкой.
Это все относится только к объектам в стеке. На члены класса это не действует.
С++ это специфицирует, а как оно в реальности, работает? Герб проверил в нескольких компиляторах, нормально, практически во всех работает.
Легким движением руки убираем const...
И есть еще момент с вызовом деструктора.
Использование const. Часть 1.
Использование const. Часть 2.
КОНЕЦ ЦИТАТЫ
http://alenacpp.blogspot.com/
Например, я только что нашёл интересный пример о константных ссылках (в свою очередь Алёна нашла этот пример в блоге знаменитого Герба Саттера http://herbsutter.spaces.live.com/blog/cns!2D4327CC297151BB!378.entry):
ЦИТИРУЮ ИЗ БЛОГА АЛЁНЫ (http://alenacpp.blogspot.com/2008/01/const.html):
Возможно, самый важный const
Герб Саттер у себя в блоге рассказывает про интересный случай с использованием const.
Краткий пересказ для ленивых.
string f() { return "abc"; }
void g() {
const string& s = f();
cout < < s < < endl; // можно ли использовать временный объект?
}
Код несколько напрягает. Создается ссылка на временный объект. Но тем не менее, с кодом все в порядке. Почему так? Потому что в С++ явно специфицировано, что если привязать временный объект к ссылке на const в стеке, то жизнь временного объекта будет продлена. Теперь он будет жить столько, сколько живет константная ссылка на него. В приведенном примере все валидно, время жизни s заканчивается с закрывающей фигурной скобкой.
Это все относится только к объектам в стеке. На члены класса это не действует.
С++ это специфицирует, а как оно в реальности, работает? Герб проверил в нескольких компиляторах, нормально, практически во всех работает.
Легким движением руки убираем const...
И получаем невалидный код, наличие const'а тут важно. Правильный компилятор выдаст ошибку на этапе компиляции.
string f() { return "abc"; }
void g() {
string& s = f(); // все еще нормально?
cout < < s < < endl;
}
И есть еще момент с вызовом деструктора.
Derived factory(); // construct a Derived objectСсылки по теме:
void g() {
const Base& b = factory(); // здесь вызов Derived::Derived
// … используем b …
} // здесь вызывается Derived::~Derived напрямую
//-- а не Base::~Base + virtual dispatch!
Использование const. Часть 1.
Использование const. Часть 2.
КОНЕЦ ЦИТАТЫ
Ярлыки:
алёна сагалаева,
алёна c++,
герб саттер,
константная,
константные,
ссылка,
ссылки,
c++,
const,
herb sutter,
reference
Подписаться на:
Сообщения (Atom)