Re: Необычные typedef
От: quantez  
Дата: 28.10.05 18:20
Оценка:
Здравствуйте, gkv, Вы писали:

gkv>Никто не подскажет что это значит?


gkv>typedef QTextStream & (*QTextStreamFunction)(QTextStream &);// manipulator function

Указатель на функцию типа:
QTextStream& func( QTextStream& );


gkv>typedef void (QTextStream::*QTSMFI)(int); // manipulator w/int argument
gkv>typedef void (QTextStream::*QTSMFC)(QChar); // manipulator w/QChar argument

Указатели на функции-члены класса QTextStream:
class QTextStream {
public:
...
    void putInt( int );     // w/int
    void putChar( QChar );  // w/QChar

};


Пользоваться можно примерно так:
int main()
{
    QTSMFI manipulator = &QTextStream::putInt;


    QTextStream* stream = getStream();  // Взять откуда-нибудь поток.
    (stream->*manipulator)( 18 );       // Вызвать функцию-член объекта *stream, на которую 
                                        // указывает f (т. е. QTextStream::putInt)

    // Или так
    QTextStream& ref = getStreamRef();
    (ref.*manipulator)( 20 );
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.