неполная ошибка типа

Я пытаюсь сделать класс А другом класса В.

<code>class B;

class A{
public:
void show(const B&); // ##1## but this one works fine  
B ob;// error incomplete type

};


class B{
public:
int b;
B():b(1){}
friend class A;  

};
</code>

поэтому мой вопрос, почему это неполный тип? Я думал, что когда я сделалclass B это похоже на прототип функции, которая сообщает компиляции, что где-то в коде есть определение.

также в коде выше в ## 1 ## почему это возможно?

Ответы на вопрос(1)

Ваш ответ на вопрос