Я не попробовал это сам, но пытаюсь установить:
height : 36px; //for other browsers
line-height: 36px; // for IE
, Где 36 пкс высота Вашего входа.
Проблема в том, что размер Class1 зависит от Class2, и наоборот. Следовательно, нет возможности рассчитать размер ни для одного из них. Вперед объявите один из классов и измените один из атрибутов на указатель или ссылку:
#ifndef HEADER2_H
#define HEADER2_H
class Class1;
class Class2
{
Class1 *class1Instance;
// or
Class1 &class1Instance;
};
#endif
Вы не можете, чтобы Class2 содержал экземпляр Class1 И если Class1 содержал экземпляр Class2. Что вы можете сделать, так это сделать так, чтобы каждый класс содержал ссылку или указатель на другой тип класса (с соответствующими прямыми ссылками). т.е.
class Class2;
class Class1
{
Class2& class2Instance;
};
class Class1;
class Class2
{
Class1& class1Instance;
};
У вас есть классическая циклическая ссылка. Это уже обсуждалось здесь, в Stack Overflow. Просто примените принятый ответ к этому потоку, заменив «структура» на «класс», и вы в золотом цвете.
Отредактировано для ясности
Две структуры бесконечно рекурсивно рекурсируют друг с другом - чтобы знать размер Class1
, вам необходимо знать размер Class2
, который требует размера of Class1
и т. д. Для этого можно использовать указатель хотя бы в одном из случаев:
#ifndef HEADER1_H
#define HEADER1_H
class Class2; // no need to include Header2
class Class1
{
Class2* class2Instance;
}
#endif