Bagaimana cara saya menyelesaikannya "terlindung " objek?

pemrograman


Saya mencoba mengidentifikasi “pengirim” fungsi “hubungkan” Qt.

itu

int i = RXobject->senderSignalIndex();

sepertinya cara yang bagus untuk menyelesaikan tugasku, tapi…

Saya mendapatkan anggota yang “dilindungi” dan tidak tahu bagaimana melanjutkannya…

Harap abaikan kode yang tidak relevan, ini sedang “sedang dibangun”
dan saya mengajukan pertanyaan C++, tidak ada hubungannya dengan Qt.

C++
void   MainWindow_Bluetooth::processMenu(int index_submenu, int index_mainmenu)
{
#ifdef LAMBDA
    text = "TASK DEBUG connect... "; //connect
    text += Q_FUNC_INFO;
    text += QString::number(__LINE__);
    // move index to class !!!
    text += " main loop index_main ";
    text += QString::number(index_mainmenu);
    text += " embeded loop  index_sub ";
    text += QString::number(index_submenu);
    text += " main loop class passed index ";
    text += QString::number(index);
    qDebug() << text;
#endif
    {// analyze indexes received block
        QString text;
        QObject *RXobject = sender();
        RXobject->dumpObjectInfo();
        QObjectList children = RXobject->children();
       //; text = RXobject->children().at(0);
        //QObjectList *RXChildren = RXobject->children();
        //QObject *RXparent = RXobject->parent();
        //QObject *TEST_parent = RXparent->parent();

        // protected member ???
int i = RXobject->senderSignalIndex();


//int SenderIndex = RXobject::​senderSignalIndex();

        //text = RXobject->dumpObjectInfo();

        text = Q_FUNC_INFO;
        qDebug() << text;

/mnt/A_BT_DEC10/BT__PROGRAMS/A_JAN11/A_BT_LIBRARY/terminal_Bluetooth/mainwindow_Bluetooth_copy.cpp:3890: error: 'senderSignalIndex' is a protected member of 'QObject'
mainwindow_Bluetooth_copy.cpp:3890:19: error: 'senderSignalIndex' is a protected member of 'QObject'
int i = RXobject->senderSignalIndex();
                  ^
/home/nov25-1/Qt/5.15.2/gcc_64/include/QtCore/qobject.h:435:9: note: can only access this member on an object of type 'MainWindow_Bluetooth'
    int senderSignalIndex() const;
        ^

Apa yang saya coba:

Minta Nyonya Google untuk memberikan contoh “pengirim

“penggunaan… tidak berhasil

Solusi 1

Jika saya memahami apa yang Anda coba lakukan, Anda tidak “menyelesaikan” metode itu. Anggota kelas yang dilindungi hanya dapat diakses dari kode kelas itu sendiri atau dari pewaris kelas, yang menurut saya adalah QObject.

コメント

タイトルとURLをコピーしました