Это для меня очень сложно, к сожалению, Вы меня напугали.
Буду разбираться.
Если не трудно, поясните, пожалуйста, в чем может быть проблема при такой инициализации и как она проявится?
Проблема может быть в трудноуловимой ошибке (там где Вы ее и не ожидаете вовсе). Я сообщал ранее Разработчикам об этом, но они длительное время не исправляют, а значит лучше воздержаться от такого способа {} инициализации, благо что есть традиционный, через =
Проблема может быть в трудноуловимой ошибке (там где Вы ее и не ожидаете вовсе). Я сообщал ранее Разработчикам об этом, но они длительное время не исправляют, а значит лучше воздержаться от такого способа {} инициализации, благо что есть традиционный, через =
Понятно. Жаль, потому что при "=" придется сначала объявлять объекты а потом присваивать массиву, это увеличит код как минимум в два раза (хотя, благо, это нужно сделать всего один раз, а далее просто обращаться к массиву через цикл).
Спасибо. Нужно будет проверить. Всегда объявлял в производных тоже виртуальными. Просто потому, что когда-то не сработал вызов метода из производного. Объявил виртуальным и заработало. Могу ошибаться в причине из-за давности описываемых событий (может и сигнатура была иной - не помню уже). Но теперь всегда виртуальные методы делаю во всех классах виртуальными, и проблем не имею.
никак не получается заставить работать Print (), что я делаю не так?
Ваш способ инициализации массива даже удобнее, спасибо!
о! пока писал пост - Вы раньше предложили.)
Ваш способ инициализации массива даже удобнее, спасибо!
Это неудобно хотя бы тем, что при таком способе явная (!) ошибка компилятором не обнаруживается:
C_Ind* inds [] = {((const C_Ind *)new C_AVE1), ((const C_Ind *)new C_AVE2)}; //нормально???А в Вашем "неудобном" (а на самом деле более правильном) способе компилятор сразу о ней сообщит в случае чего:
Это неудобно хотя бы тем, что при таком способе явная (!) ошибка компилятором не обнаруживается:
А в Вашем "неудобном" (а на самом деле более правильном) способе компилятор сразу о ней сообщит в случае чего:
Это для меня очень сложно, к сожалению, Вы меня напугали.
Буду разбираться.
Если не трудно, поясните, пожалуйста, в чем может быть проблема при такой инициализации и как она проявится?
Это для меня очень сложно, к сожалению, Вы меня напугали.
Буду разбираться.
Если не трудно, поясните, пожалуйста, в чем может быть проблема при такой инициализации и как она проявится?
Проблема может быть в трудноуловимой ошибке (там где Вы ее и не ожидаете вовсе). Я сообщал ранее Разработчикам об этом, но они длительное время не исправляют, а значит лучше воздержаться от такого способа {} инициализации, благо что есть традиционный, через =
ArraySwap
Правильно! ArraySwap нужно запретить в принципе, потому что он нарушает константность
Проблема может быть в трудноуловимой ошибке (там где Вы ее и не ожидаете вовсе). Я сообщал ранее Разработчикам об этом, но они длительное время не исправляют, а значит лучше воздержаться от такого способа {} инициализации, благо что есть традиционный, через =
Откуда такие сведения?
Достаточно в базовом
Спасибо. Нужно будет проверить. Всегда объявлял в производных тоже виртуальными. Просто потому, что когда-то не сработал вызов метода из производного. Объявил виртуальным и заработало. Могу ошибаться в причине из-за давности описываемых событий (может и сигнатура была иной - не помню уже). Но теперь всегда виртуальные методы делаю во всех классах виртуальными, и проблем не имею.