Предположим, что Foo
- это довольно большие данные структура. Как мне написать виртуальную функцию const
, которая возвращает экземпляр Foo
, если я не знаю, будут ли унаследованные классы хранить экземпляр Foo
внутри ; таким образом, позволяя возврат по ссылке. Если я не могу сохранить его внутри, я понимаю, что я не могу вернуть на него ссылку const
, потому что она будет временной. Это правильно? Есть два варианта:
virtual Foo foo() const { ... }
virtual Foo const & foo() const { ... }