Указатель на класс?
От: FallAngel Украина  
Дата: 29.10.07 12:47
Оценка:
Доброго времени суток!
Вот отрывок из курса Intuit.ru(наткнулся на него когда искал ответ на вопрос можно ли задать указатель на класс. Не на обьект класса!!! ):

Переменная, объявленная как указатель на класс, применяется для доступа к методам и переменным членам класса. В следующей таблице приведен синтаксис, используемый при работе с указателями на члены класса.

Hапример:

#include <iostream.h>
class A        // Объявление класса A
{ public: int j1;
   A(void);
   ~A(void);};
void main() { 
int A::*pToj = &A::j1; 
    // Объявление производного типа pToj
    // как указателя на член класса j1 
A jA;                   
    // Объявление переменной объектного типа A
A *pjA = & jA;   
    // Объявление указателя на эту 
    // переменную (объект)
int j;
jA.*pToj = 123;    
    // Присваивание значения переменной 
    // jA::j1, используя * 
j = pjA ->*pToj; 
    // Получение значения, используя ->*
 std::cout << j << "\n";
}

Я как-то не совсем понял зачем нужна подобная конструкция

int A::*pToj = &A::j1;

и чем лучше писать вот так

jA.*pToj = 123;

чем просто

   jA.j1 = 123;

Я искал информацию по этому поводу в гугле, но ничего не нашел(что и не странно, если учесть что я не знаю, даже, как это назвать )Если кто знает где можно почитать об этом механизме поподробнее, киньте пжалста ссылочку. Ну или хоть обьясните что это и с чем его едят(я так понял что где-то тут есть указатель на класс, но где он, зачем он и что он я не понял )
Заранее благодарю!
"...наставники более мудры не благодаря умению действовать, а потому, что они обладают отвлеченным знанием и знают причины..." Аристотель.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.