А>Где-то в главной функции (main) создаётся матрица даблов. А>Ошибка такая: error: no match for call to ‘(os::Vector<double>) (os::count_t&)’ .
А>В общем-то не понятно, как исправить.
Понятно всё. Смотри исправление во фрагменте выше...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, AntonScherbakov, Вы писали:
AS>Здравствуйте, Erop, Вы писали:
E>>Понятно всё. Смотри исправление во фрагменте выше...
AS>Спасибо! Подскажите, как это объяснить? Раньше думал, что это эквивалентные записи.
AS>-- AS>Антон.
В вашем случае просто вызывается оператор () у соответствующего объекта. Никакого такого оператора у него нет, вот и ошибка.
Здравствуйте, AntonScherbakov, Вы писали:
AS>Спасибо! Подскажите, как это объяснить? Раньше думал, что это эквивалентные записи.
Конструкторы баз и членов вызываются в списке инициализации, перед входом в тело конструктора финального объекта.
Если в списке чего-то нет, то у соответствующей базы или члена выполняется дефолтный конструктор (без параметров).
А уже в теле конструктора, равно как в теле любой другой функции, можно только вызывать функции, но не конструкторы.
В принципе, можно было вполне удовлетвориться двухфазной инициализацией:
— дефолтный конструктор вектора — создаёт пустой вектор
— затем к вектору применяется функция resize()
Здравствуйте, AntonScherbakov, Вы писали:
AS>Спасибо! Подскажите, как это объяснить? Раньше думал, что это эквивалентные записи.
Не эквивалентны, как видишь. Твоя -- это попытка вызова operator() у твоего поля.
А правильная называется вызов конструктора базы или поля...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском