История изменений
Исправление safocl, (текущая версия) :
но ведь ты не будешь отрицать чо указатель QWindow *win создан из указателя QObject *watched???
получается чо создается указатель win который использует уже созданный в памяти блок объекта QObject *watched... а дополнительные для функционирования класса QWindow поля где создались?
я проверял на тестовом примере — область начала памяти таких объектов одна и таже, т.е. адрес указателей один... но размер разный, соответственно у наследника больше на количество доп полей... однако не понятно, где енти поля находятся в памяти, вроде же стандарт гарантирует чо поля класса находятся подобно массивам — вплотную, — из-за чего появляются и предупреждения о дополнительном выравнивании...
или компилятор резервирует место при таком коде для всех полей классов наследников созданных таким способом из родителя на этапе компиляции?
или ты имееш ввиду что туда в функцию передается именно наследник класса QObject — класс QWindow ? и только в ентом случае будет все остальное? Для реализации полиморфизма...
однако даже енто не отменяет моего тестового опыта, где такого не происходит...
Исправление safocl, :
но ведь ты не будешь отрицать чо указатель QWindow *win создан из указателя QObject *watched???
получается чо создается указатель win который использует уже созданный в памяти блок объекта QObject *watched... а дополнительные для функционирования класса QWindow поля где создались?
я проверял на тестовом примере — область начала памяти таких объектов одна и таже, т.е. адрес указателей один... но размер разный, соответственно у наследника больше на количество доп полей... однако не понятно, где енти поля находятся в памяти, вроде же стандарт гарантирует чо поля класса находятся подобно массивам — вплотную, — из-за чего появляются и предупреждения о дополнительном выравнивании...
или компилятор резервирует место при таком коде для всех полей классов наследников созданных таким способом из родителя на этапе компиляции?
или ты имееш ввиду что туда в функцию передается именно наследник класса QObject — класс QWindow ? и только в ентом случае будет все остальное?
Исходная версия safocl, :
но ведь ты не будешь отрицать чо указатель QWindow *win создан из указателя QObject *watched???
получается чо создается указатель win который использует уже созданный в памяти блок объекта QObject *watched... а дополнительные для функционирования класса QWindow поля где создались?
я проверял на тестовом примере — область начала памяти таких объектов одна и таже, т.е. адрес указателей один... но размер разный, соответственно у наследника больше на количество доп полей... однако не понятно, где енти поля находятся в памяти, вроде же стандарт гарантирует чо поля класса находятся подобно массивам — вплотную, — из-за чего появляются и предупреждения о дополнительном выравнивании...
или компилятор резервирует место при таком коде для всех полей классов наследников созданных таким способом из родителя на этапе компиляции?