давно не писал на C++, поэтому, возможно, не могу понять ошибку:
пытаюсь на C++ реализовать Observer Design Pattern
после ряда ошибок и попыток их локализации (вырезал все наследования итп)выяснил
что ошибка кроется где-то здесь
OBSERVER
#ifndef A_H
#define A_H
#include "B.h"
class A{
public:
void Update (B*);
};
void A::Update (B* par)
{
//all right
}
#endif
SUBJECT
#ifndef B_H
#define B_H
#include "A.h"
class B{
public:
void Attach (A*);
};
void B::Attach (A* par)
{
//all right
}
#endif
#include "iostream.h"
#include "A.h"
#include "B.h"
void main(){
cout << "jast alive\n" << endl;
cin.get();
}
ошибка в B.h на метод attach
error C2065: 'A' : undeclared identifier
и аналогично , если поменять местами включения, будет ругаться на B
------------------------------------------------
кстати, если в протектет засунуть конструктор
protected:
Observer()
То это обеспечит, что создать объект можно будет только с помощью new
и будет запрещено автоматическое создание ( like, когда неявное преобразование типов, = )?
это так?
СПАСИБО