Jochen Arndt
Обычный метод заключается в передаче указателя или ссылки.
Пример:
// Class1 header file
// Forward reference to Class2.
// Avoids including the header file of Class2.
class Class2;
class Class1
{
// ...
void setFromClass2(const Class2& class2);
};
// Class1 source file
#include "class1.h"
#include "class2.h"
void Class1::setFromClass2(const Class2& class2)
{
// Access members of class2 here
}
Вы также можете создать переменную-член в
Class1
это может быть инициализировано с помощью экземпляра
Class2
Но тогда вы должны убедиться, что
Class2
объект существует в течение всего времени жизни
Class1
или сбрасывается и код проверяет его:
// Class1 header file
class Class2;
class Class1
{
// Initialise m_class2 to NULL in the constructor
Class1() { m_class2 = NULL; }
// ...
void setClass2(const Class2 *class2) { m_class2 = class2; }
void someFunc();
protected:
const Class2 *m_class2;
};
// Class1 source file
void Class1::someFunc()
{
if (m_class2)
{
// Access members of Class2 here when the pointer is not NULL
}
}
То
const
ключевое слово в моих примерах гарантирует, что содержание
Class2
не может быть изменен (только для чтения).