Нет, в C++ переопределять каждый раз надо абстрактные функции. Виртуальные переопределять можно, но не обязательно.
А виртуальный деструктор нужен для того, чтобы, при удалении объекта по указателю на базовый класс вызвался не только деструктор базового класса, но и деструктор производного (и не произошло утечки памяти). Если деструктор не виртуальный, то этого не произойдет.
Поскольку текст диплома еще не дописан, могу предложить только слайды презентации-отчета. В принципе, идею по ним вполне можно понять. В слайдах есть и ссылка на код. Если нужно — дайте мне свой e-mail, я отправлю.
Про формулу Байеса — это вы зря :) Она, например, лежит в основе подавляющего большинства методов, используемых в современном компьютерном зрении. Ну и еще в миллионе других областей используется.
Ну, прям аналогичный Акинатору наверное не стоит. Все-таки есть уже сам Акинатор =) А вот почитав комментарии выше, я подумал, что идея онлайн-траблшутера, который будет не только подсказывать решения проблем, но и самостоятельно обучаться, не так уж плоха. Надо об этом интенсивней поразмыслить на досуге.
Нет, совсем не глупо =) Просто она пока далека от идеала, и я ее выкладывать не стал. Но исходники и прилагающуюся к ним базу знаний могу выслать всем желающим, отписывайтесь тут.
Точнее будет сказать, что от идеала далека база знаний, потому что почти всю ее составлял один человек (которому за это была обещана и впоследствии куплена бас-гитара) =) В любом случае, решающий движок реализован и работает по формулам, описанным в статье.
Ну я и имел в виду, что по ссылке нечто, что содержит в себе информацию о том, что можно почитать по теме. Забыл упомянуть про один уровень косвенности.
Вы допускаете ту же ошибку, что и комментатор выше. Пролог — это язык логического программирования. На нем очень легко сделать экспертную систему поверх базы знаний, где характеристики объектов задаются областями истинности предикатов. Но Пролог никак (насколько мне известно) не помогает при реализации вероятностной интерпретации этой задачи (которая, в свою очередь, куда как более устойчива к неточностям).
А виртуальный деструктор нужен для того, чтобы, при удалении объекта по указателю на базовый класс вызвался не только деструктор базового класса, но и деструктор производного (и не произошло утечки памяти). Если деструктор не виртуальный, то этого не произойдет.
А диплом по матметодам — это как? По всем матметодам? :)
Точнее будет сказать, что от идеала далека база знаний, потому что почти всю ее составлял один человек (которому за это была обещана и впоследствии куплена бас-гитара) =) В любом случае, решающий движок реализован и работает по формулам, описанным в статье.