Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Почему не создается объект  (Прочитано 7621 раз)
0 Пользователей и 1 Гость смотрят эту тему.
lapulya
Молодой специалист

ru
Offline Offline

« : 08-09-2004 11:39 » 

нарвался тут на такой код

typedef std::string String;
void f(String)
{
...
}

void main()
{
f("bubu");
}

не понимаю, почему при вызове f создается ОДИН объект типа String,
насколько я понимаю должно создаваться два...

один когда из "bubu" создается String, поскольку сигнатура функции требует в параметре тип String

второй когда происходит передача параметра в функцию по значению

может какая оптимизация или это предусмотрено стандартом
Записан

С уважением Lapulya
Serega
Гость
« Ответ #1 : 08-09-2004 12:41 » 

Если бы ты передавал обьект типа String, тогда была бы создана копия, и было бы два обьекта String
А так есть строка char* и обьект String
Записан
lapulya
Молодой специалист

ru
Offline Offline

« Ответ #2 : 08-09-2004 12:50 » 

не понял я твой ответ, но хочу уточнить ПОЧЕМУ не создается объект типа String ДО входа в функцию, веть сигнатура функции такова что хочет на входе объект типа String а не const char *, меня интересует именно почему так происходит, а не ответ на то происходит или нет (я и сам в дебаге прекрасно вижу что объект НЕ создается)
Записан

С уважением Lapulya
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 08-09-2004 13:33 » 

lapulya, см. стандарт, раздел 5.2.2, 4-й абзац

Цитата
During the intitialization of a parameter, an implementation may avoid the construction of extra temporaries by combining the conversion on the associated argument and/or the construction of temporaies with the initialization of the parameter  


Подходит цитата?
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
lapulya
Молодой специалист

ru
Offline Offline

« Ответ #4 : 08-09-2004 14:40 » 

спасибо npak, именно ее я и жаждал...
Записан

С уважением Lapulya
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #5 : 08-09-2004 14:52 » 

дадут мне в морду за такой вопрос. Но все же дате линк на стандарт. :?
Записан

Странно всё это....
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 08-09-2004 16:14 » 

LogRus, ко мне стандарт добирался тайными тропами Улыбаюсь

Вроде как он лежит на некоторых библиотеках, но линков у меня нет Жаль
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #7 : 08-09-2004 16:56 » 

npak, плохо! ладно будем искать. Улыбаюсь
Записан

Странно всё это....
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #8 : 08-09-2004 17:53 » 

LogRus, может это подойдёт ?

Цитата

ISO Draft Standart Working Papers (December 1996) [FTP # 1]  [FTP # 2]
    - Последняя рабочая версия стандарта. Несколько отличается от утвержденной версии, но все равно весьма полезный документ. В отличии от утвержденного стандарта рапространяется бесплатно  
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #9 : 08-09-2004 18:00 » 

И ещё вот сюда можно сходить.
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #10 : 08-09-2004 18:02 » 

чего то работают ссылки Жаль
Записан

Странно всё это....
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #11 : 08-09-2004 18:06 » 

LogRus, сорри, я не проверял   Вот такой я вот
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #12 : 08-09-2004 18:30 » 

вот чего нашел
http://www.fastbb.net/files/file.php?file=/files/C_CPP/ansi_iso_iec_14882_1998_CPP_standart.rar
скачал сижу пруся от осознания что читаю "СТАНДАРТ C++" Улыбаюсь крутотень.
А последняя редакция это ISO/IEC 14882:2003
Блин казлы скачивай на здоровье прямо www.iso.org только денег дай. ЗА ЧТО! Я не понимаю.
Записан

Странно всё это....
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #13 : 09-09-2004 06:30 » 

LogRus, мдас, бабло непонятно за что хотят Жаль
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #14 : 09-09-2004 10:41 » 

разработка стандартов -- весьма хлопотное и дорогое дело.
1. В рабочем комитете люди за деньги работают,
2. Нужны деньги на орг. расходы -- проведение встреч рабочей группы, подготовки материалов, прочие административные хлопоты
3. Оплата публикаций, издания стандарта

Ну и вообще денег много не бывает.  Хотя бы за тем, чтобы
4. оплачивать недвижимость в Швейцарии, где располагается штаб-квартира ISO

На свете не так много организаций, которые делают хорошо выверенные стандарты и раздают их за так.

В первую очередь, IETF со своими RFC.
Есть конторы в Европе, которые полностью финансируются Евросоюзом и могут себе позволить раздавать Интеллектуальную Собственность бесплатно.
Есть W3C, финансируемый Microsoft.  Он тоже раздаёт свои стандарты и рекомендации за так.
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines