2011-12-12 51 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

我会记住这一点。 –

相关问题