Ошибка предыдущего определения C ++

Итак, благодаря этому сайту я нашел ответ на свою предыдущую проблему. Я добавляю функцию к классу в проекте GNU automake, который использует указатель на объект doc . В файл Makefile.am были включены зависимости doc.h и plsa.h в соответствующем порядке. Однако при компиляции я получал сообщение об ошибке ​​doc не был объявлен . Затем я попытался добавить сюда оператор #include, который дает предыдущее переопределение ошибки 'class doc' .

Я узнал, что мне нужно объявить документ , используя строку class doc; , закомментированную ниже; однако я думал, что это было необходимо только в том случае, если я объявлял функцию, которая передает объект по значению. Может кто-нибудь объяснить мне, почему #include в данном случае неверно?

#include "doc.h"
//class doc;
class plsa {
    // ...
    int infer(doc *trset, int maxiter, double noiseH);
}
5
задан thiton 27 October 2011 в 17:39
поделиться