*   >> Чтение Образование Статьи >> science >> programming

Указатель на операторов-членов в C ++

<р> Операторы C ++ - Часть 7 Введение Это часть 7 серии, мой операторов C ++. В этой части серии мы рассмотрим то, что известно, как указатель на член операторов. Есть два указателя на член операторы. Я не буду объяснять только указатель на член операторов в этой статье; Я объясню другие вещи, которые идут с ним, что вы не можете быть знакомы с. Примечание: Если вы не видите код или, если вы думаете, что-то отсутствует (неработающую ссылку, изображение отсутствует), просто свяжитесь со мной в [email protected].

То есть, свяжитесь со мной для малейшей проблемы у вас есть о том, что вы читаете. Предпосылкой вы должны прочитать из этого блога, статей, "C ++ Указатели", "C ++ пространств имен Основы" и "указатели классов в C ++" или аналогичных изделий, прежде чем читать это. Эти три статьи являются одними из двух серий, которые я упомянул в предыдущих частях этой серии. Связывание Представьте себе, что у вас есть два класса А и В, и класс А является имущество (объект) класса B. Вы экземпляр объекта из B. Тогда вы измените объект имущественного В, которое класса A.

Вы можете затем связать это свойство B к объекту B так, что последствия будут видны в конкретизированной объекта А. мы увидим примеры ниже. Бинарный оператор. * Давайте посмотрим на пример, который использует. * Оператор. Оператор состоит из точки с последующим звездочкой. Рассмотрим следующий код: #include с помощью патезрасе; класс А {общественности: INT Propa; }; класс В {общественности: а propB; }; А Б :: * propBPtr = & B :: propB; INT Main () {B B; b.propB.propA = 9; А а = б * propBPtr. COUT вернуть 0; } Два класса А и В описаны. Класс имеет свойство, Propa, который имеет тип Int.

Класс B имеет свойство, propB, которая от класса А типа. propB является конкретизация класса А. После описания класса B в коде, у вас есть утверждение, AB :: * propBPtr = & B :: propB; Это утверждение является заявление инициализации. Оператор указатель на член работает с указателем на propB класса В. Это специальный указатель, потому что это указатель на недвижимость в описании класса, а не к экземпляра объекта из класса. Заметим, что свойство в классе B мы говорим здесь о типа А. Описание класса похож на описание пространства имен.

Таким образом, чтобы получить доступ к собственности класса, необходимо оператору Scope (: :) как вам это нужно, чтобы получить доступ к идентификатор в описании пространства имен. Давайте теперь посмотрим на заявления инициализации: Справа от простого оператора присваивания у вас есть ссылка (& B :: propB) в собственность в описании класса B, который имеет тип А. Обратите внимание на использование оператора задана Там. Слева у вас есть заявление указатель этого имущества, в описании класса B и указатель, указывающий на свойство типа А.

Таким образом, декларация указатель начинается с А, то B для класса B, оператора задана, то указатель звездочку и указатель; Вы можете дать любое имя вы хотите для указателя. Это утверждение является специальный инициализации указателя. Теперь давайте посмотрим на то, что в главной функции. В главном объекта B, называется б, экземпляр. В отеле, propB объектно б затем обращались. Это свойство имеет тип А. Цель такого доступа, чтобы дать значение к Int собственности имущества в б. Таким образом, это Propa объекта, propB объектно б фактически используется.

Таким образом, вы начать с B, затем точка, затем propB, то точку, а затем Propa. Ну, вы тогда назначение на Int, который в данном случае является 9. Следующий оператор использует оператор указателя-на-член. Он связывает propB используя свой указатель на недвижимость в описании класса B. Указатель второй операнд из. * Оператор и объект B является первым операндом оператора. Результат (или возвращаемое значение) этого связывания является объектом типа А.

В результате назначается (копируется) на созданный объект типа А в коде; этот объект называют, Вот цитаты из C ++ спецификации о связывания оператора, (. *). "Бинарный оператор. * Связывает второй операнд, в котором должны быть типа" указатель на член Т "(где Т представляет собой совершенно определенные тип класса), чтобы его первого операнда, который должен быть класса T. Результатом является Объект типа, указанного во втором операнде. ". Теперь следующий оператор выводит значение INT имущества.

Это значение 9, который был назначен на INT свойства объекта типа А, который является собственностью описании класса B. Из-за связывания, новый созданный объект, а, имеет значение в его собственности. Бинарный оператор -> * Этот оператор начинается с символа -> следует *. Целью данного оператора указатель на член такой же, как у предыдущей оператора, но его первый операнд является указателем на объект В, а не идентификатор объекта б.

Следующий код показывает, как это можно использовать: #include с помощью патезрасе; класс А {общественности: INT Propa; }; класс В {общественности: а propB; }; А Б :: * propBPtr = & B :: propB; INT Main () {B * bPtr; bPtr-> propB.propA = 9; А а = bPtr -> * propBPtr; COUT вернуть 0; } В приведенном выше коде, заявление для оператора указателя на член является, А = bPtr -> * propBPtr; Операторы указатель на член работают слева направо. У вас есть два из них, которые являются * и -.

>

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Чтение Образование Статьи,https://ru.nmjjxx.com All rights reserved.