Читайте также: |
|
Указатели могут указывать на объекты так же, как и на простые типы данных и массивы. Мы можем использовать операцию new для создания объектов во время работы программы. Операция new возвращает указатель на неименованный объект.
Если указатель указывает на объект, то доступ к членам объекта можно получить, используя операцию ->. Для доступа к членам структуры используется тот же синтаксис.
class Distance
{
private:
int feet;
public:
void showdist() { cout << feet; } // вывод информации
};
int main ()
{
Distance dist; // определяем объект типа Distance
dist.showdist (); // выводим на экран
Distance* distptr; // определяем переменную-указатель на Distance
distptr = new Distance; // создаем объект Distance
distptr->showdist (); // выводим информацию
}
distptr->showdist (); - это то же самое что (*distptr).getdist (); //разыменование указателя
Если вы не хотите работать с указательной переменной, а хотите использовать обычную переменную, то можно использовать следующий подход:
Distance& dist = *(new Distance); // создаем объект типа Distance
dist.showdist(); // доступ к членам класса осуществляем через оператор "."
Используя ссылку, мы определили dist как объект класса Distance и определили его равным *(new Distance). Теперь мы можем ссылаться на члены объекта dist, используя операцию точки, а не операцию ->.
В классах и структурах могут содержаться элементы, которые являются указателями на сами эти классы или структуры. Это позволяет создать более сложные структуры, такие, как связные списки. Каждый элемент содержит свои данные, и указатель на следующий элемент списка:
struct link // один элемент списка
{
int data; // некоторые данные
link* next; // указатель на следующую структуру
};
Однако хотя класс может содержать в себе указатель на такой же объект, сам этот объект он содержать в себе не может:
class sampleclass { sampleclass obj; /* так нельзя */ };
Это справедливо как для классов, так и для структур.
Дата добавления: 2015-08-17; просмотров: 84 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Синтаксис определения структуры, структурной переменной. Доступ к полям структуры, присвоение структурных переменных. | | | Определение функции. Передача аргументов и возврат значения по значению, ссылке и указателю. Аргументы по умолчанию. Константы аргументов функции. |