Указатели для начинающих (Pointers) - Указатели на классы
ОГЛАВЛЕНИЕ
Указатели на классы
Существует парочка других препятствий с указателями, одним из которых является структура классов. Вы можете указать класс следующим образом:
class MyClass
{
public:
int m_Number;
char m_Character;
};
Затем вы можете определить переменную типа MyClass:
MyClass thing;
Все это вы уже знаете. А если нет, то вам стоит немного почитать про массивы. Чтобы определить указатель на MyClass вам необходимо использовать:
MyClass *thing;
...как вы и прочитали в начале статьи. Затем вы можете распределить некоторую память и заставить данный указатель ссылаться на память:
thing = new MyClass;
Тут вы встретите следующую проблему - как же использовать указатель? Вы могли бы написать thing.m_Number, но в случае с указателями thing не является MyClass, а является указателем на него. Итак, сам thing не содержит никакой переменной с названием m_Number - он указывает на структуру, которая содержит m_Number. Поэтому мы должны использовать другие правила, и для этого точку "." заменяют на знак "->" (тире, за которым следует знак неравенства означающий "больше"). Вот пример этого:
class MyClass
{
public:
int m_Number;
char m_Character;
};
void main()
{
MyClass *pPointer;
pPointer = new MyClass;
pPointer->m_Number = 10;
pPointer->m_Character = 's';
delete pPointer;
}