Re[14]: А С++ то схлопывается...
От: B0FEE664  
Дата: 04.11.19 15:42
Оценка: :)))
Здравствуйте, so5team, Вы писали:

S>Так что еще раз: А каким боком виртуальность функций к целому или не целому объекту?

Если у вас есть указатель на базовый объект, то этот указатель указывает только на часть объекта, а не на весь (целый) объект. Чтобы добраться до целого объекта можно использовать виртуальные методы, тогда (внутри метода) будет доступна та часть объекта, которая видна для типа, где этот виртуальный метод определён.

Допустим у нас есть два типа C и B. Вы можете выделить общую часть и положить её в A, затем отнаследовать C и B от А, добавить виртуальные методы. Но как вы это будете использовать?
Так:?
void fun()
{
  C c;
  B b;

  c.my_virtual_method();
  b.my_virtual_method();
}


S>>>Есть ощущение, что вам матчасть нужно сперва подучить.

BFE>>Это иллюзия.
S>Вы себе сильно льстите.
Не так сильно, как вы думаете. У меня рейтинг 46, а у вас 58.

S>Вот и получается, что отсутствие динамической памяти вообще никак не превращает современный C++ в Си с классами. Поэтому у вас в исходном утверждении ошибка. Что и определяет все последующие заблуждения.

Вообще-то я такого не утверждал.

S>>>Так у вас если нет динамической памяти и исключений не будет.

BFE>>Это почему вы так думаете? Насколько я помню стандарт, память под исключения выделяется особым образом. Вроде бы implementation defined.
S>Потому что в распространенных реализациях память для исключений гарантированно есть только под bad_alloc. Остальные объекты исключений размещаются в хипе. Что и делает возможным существование exception_ptr, который для исключений работает как умный указатель.
S>Соответственно, если у вас нет динамической аллокации, то и исключений, скорее всего, не будет.

Что ж. Ещё один аргумент против исключений.
Т.е. получается С++ без исключений, без контейнеров, без умных указателей. И это следствие только одного требования.
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.