2011-12-12 54 views

回答

0

是否可以訪問對象的數據成員取決於它們是否被聲明爲publicprivate。查看頭文件中的類(或結構)定義。這與事實無關,即類別映射到D-Bus上的某個事實,儘管假設類可能錯誤地編寫並允許您執行D-Bus不支持的操作,在這種情況下,I無法從提供的信息中知道會發生什麼。

class DBusThing 
{ 
    int seeBelowMember; 
public: 
    int accessibleMember; 
    int accessibleMethod(int argument); 
private: 
    int inaccessibleMember; 
} 

void someFunc() 
{ 
    DBusThing foo; 
    int ret = foo.accessibleMethod(5); // legal 
    foo.accessibleMember=5; // legal 
    foo.inaccessibleMember=5; // illegal 
    foo.seeBelowMember=5; // illegal because DBusThing is declared class. 
    // If DBusThing had been declared struct, seeBelowMember would be accessible. 
} 

我認爲可能是班級寫得不正確,並且會阻止你嘗試不可能。

+0

是的,我同意私人成員無法訪問。我所關心的是如何訪問公共網站。我使用QDBusMessage :: createMethodCall(const QString&service,const QString&path,const QString&interface,const QString&method)方法調用Qt-Dbus上的方法。在這種情況下,我無法確定如何訪問數據成員?我想你在我編輯我的問題之前張貼了。無論如何,感謝您的快速響應。 –

+0

@只有在編輯之前確實發佈過。在堆棧溢出時,這裏有一個相當健康的QT標籤。當你有關於QT庫的問題時,說出來並使用標籤將會很有用。 – 01d55

+0

我會記住這一點。 –

相關問題