我们可以通过D-bus访问数据成员和指向对象的指针吗?

时间:2011-12-12 06:40:35

标签: c++ c qt dbus

我一直在访问公开的成员函数,这些函数对应于通过D-Bus公开的对象。有没有办法可以访问(公共)数据成员?如果是这样,怎么样?

我也在这里读到 -

[http://www.qtcentre.org/archive/index.php/t-24238.html]

无法通过D-Bus传递指针。只是想确认一下。

1 个答案:

答案 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.
}

我判断该课程可能写得正确并且会阻止你尝试不可能的事。