Перебор массива полиморфных объектовC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Перебор массива полиморфных объектов

Сообщение Anonymous »

Рассмотрим следующий код:

Код: Выделить всё

#include 

struct B {
char i;
B(char i) : i(i) {};
void bar() {};
};

struct D : B {
int y;
D(char i, int y) : B(i), y(y) {};
};

void foo(B *arr, size_t size)
{
for(B *end = arr + size; arr < end; ++arr) {
std::cout i При переборе массива, производного по указателю на базу в полиморфном контексте, какое смещение будет использоваться по стандарту?
[/list]
I просмотрел стандарт и не нашел никаких упоминаний об информации времени выполнения, влияющей на смещения.
[expr.add] на самом деле не проясняет этот вопрос. Технически это означает, что результирующий указатель должен указывать на элемент массива.
Для меня становится очень странно, когда я печатаю команду foo:
[code]#include 

struct B {
char i;
B(char i) : i(i) {};
virtual void foo() { std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78546477/iterating-over-array-of-polymorphic-objects[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Перебор массива полиморфных объектов
    Anonymous » » в форуме C++
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Можно ли использоваться `std :: allocator` для обработки полиморфных объектов?
    Anonymous » » в форуме C++
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Можно ли использоваться `std :: allocator` для обработки полиморфных объектов?
    Anonymous » » в форуме C++
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Можно ли использоваться `std :: allocator` для обработки полиморфных объектов?
    Anonymous » » в форуме C++
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Можно ли использоваться `std :: allocator` для обработки полиморфных объектов?
    Anonymous » » в форуме C++
    0 Ответы
    189 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»