Почему не будет ухаживать <<за работой с перегруженным * оператор?

Вы не делаете ничего плохого - это ошибка в скрипте, которая появляется, когда вы идете по пути «Скрипт автоматизации» на портале. Вы можете изменить скрипт для использования параметра или просто удалить его, если вы его не используете.

В репозитории быстрого запуска есть больше сценариев развертывания, если вы хотите взглянуть на них:

https://github.com/Azure/azure-quickstart-templates

https://github.com/Azure/azure-quickstart-templates/blob/master/Deploy-AzureResourceGroup.ps1

5
задан Skilldrick 16 January 2009 в 21:10
поделиться

1 ответ

То, что происходит, является этим bcd * 2 генерирует временный файл BCD, который не может связать с a BCD &. Попытайтесь заменить << оператор с одним из них:

friend ostream &operator<<(ostream &os, const BCD &bcd);

или

friend ostream &operator<<(ostream &os, BCD bcd);

или даже

friend ostream &operator<<(ostream &os, const BCD bcd);

Первые работы, начиная с привязки временной переменной к постоянной ссылке позволенный explicity, в отличие от привязки к ссылке неконстанты. Другие работают путем создания копии временной переменной.

Править: Как отмечено в комментариях - предпочитают константу, и версия в большинстве случаев, начиная с изменения объекта в операторе потоковой передачи будет удивительна любому использующему Ваш класс. Получение этого скомпилировать может потребовать добавления const объявления к Вашей функции членства классов в соответствующих случаях.

12
ответ дан 13 December 2019 в 05:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: