Здравствуйте, гость ( Вход | Регистрация )
|
igor_bogomolov |
13.7.2010, 23:34
Сообщение
#1
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29
|
Вопрос из теста.
Раскрывающийся текст Вопрос в тесте такой - сколько раз вызовется конструктор класса A при исполнении функции main. После ответа откомпилируй код для проверки, добавив какой-нибудь std::cout в конструктор A. При первом просмотре (да и при втором, третьем, ...) я предположил, что конструктор вызовится 4 раза. Откомпилировав, получил всего два вызова. Пробовал воспользоваться отладчиком и впал в недоумение. r1 и r2 вообще не создаются, т.е. при компиляции эти строчки игнорируются. Сделал m_name публичным и попробовал обратиться к нему после создания r1. Получил ошибку компиляции Цитата ошибка: запрос элемента ‘m_name’ в ‘r1’, имеющего не классовый тип ‘A(std::string)’ При этом r3 и r4 создаются нормально и обращение к m_name не приводит к ошибке.Помогите разобраться что происходит |
|
|
|
igor_bogomolov Вопрос по с++ 13.7.2010, 23:34
DEADHUNT Это связано с неоднозначностью, компилятор не може... 14.7.2010, 1:45
Litkevich Yuriy Цитата(DEADHUNT @ 14.7.2010, 5:45) может ... 14.7.2010, 7:19
DIMEDROLL вижуал студия сразу выдает предупреждение:
Цитата1... 14.7.2010, 7:29
Алексей1153 должен 4 раза вызваться - все 4 раза конструктор к... 14.7.2010, 7:55
igor_bogomolov Цитата(Алексей1153 @ 14.7.2010, 8:55) дол... 14.7.2010, 12:36
DEADHUNT Цитата(Litkevich Yuriy @ 14.7.2010, 8:19)... 14.7.2010, 13:09
igor_bogomolov Еще подсказали. Достаточно выражение в r1 и r2 зак... 14.7.2010, 13:14
Алексей1153 мдя, ночь без сна сказалась ))
Цитата(igor_bogomo... 14.7.2010, 14:13
ЙаМайскЫйПчОЛ Этож... 3.14дец
Так всетаки он это чуствовал как п... 14.7.2010, 17:17
DEADHUNT вот в чём дело:
7
Another ambiguity arises in a pa... 14.7.2010, 18:27
Влад Эта особенность синтаксиса описана у Скотта Мейерс... 16.7.2010, 11:45![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 14.12.2025, 11:05 |