Re[4]: const и функции
От: Ignoramus  
Дата: 20.04.05 10:18
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, Ignoramus, Вы писали:


I>>Кроме того, наверное нельзя будет присвоить

I>>
I>> A a();
I>> const B b = a.get_b();            // ok
I>> B bb = a.get_b();                 // compiler error!
I>>


I>>Правильно я понял?


J>Нет. На присваивание это не действует (а то, что ты написал — это вообще инициализация, а не присваивание).

J>запретить только можно будет инициализацию некостантных ссылок в стиле B& bb = a.get_b();

сорри, в данном примере я ошибся, я имел в виду конечно const B& b и B& bb.

Но если бы я объявил A::get_b как B get_b(), то тогда с помощью const также можно запретить инициализацию и самого объекта, правильно?

Кроме того если пример B bb = a.get_b(); разбить на B bb; bb = a.get_b();, то это тоже компилятор не пропустит, так? Т.е. не только инициализация но и присваивание запрещено? (для const B b понятно может быть только инициализация).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.