我一直在访问公开的成员函数,这些函数对应于通过D-Bus公开的对象。有没有办法可以访问(公共)数据成员?如果是这样,怎么样?
我也在这里读到 -
[http://www.qtcentre.org/archive/index.php/t-24238.html]
无法通过D-Bus传递指针。只是想确认一下。
答案 0 :(得分:0)
是否可以访问对象的数据成员取决于它们是声明public
还是private
。查看头文件中的类(或结构)定义。这是正确的,因为该类映射到D-Bus上的某些东西,尽管假设该类被错误地写入并允许你做一些D-Bus不支持的事情,在这种情况下我无法从提供的信息中知道会发生什么。
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.
}
我判断该课程可能写得正确并且会阻止你尝试不可能的事。