【发布时间】:2012-01-18 05:41:19
【问题描述】:
我一直在访问公开的成员函数,对应于通过 D-Bus 公开的对象。有什么方法可以让我访问(公共)数据成员吗?如果有,怎么做?
我也在这里阅读-
[http://www.qtcentre.org/archive/index.php/t-24238.html]
不能通过 D-Bus 传递指针。只是想确认一下。
【问题讨论】:
我一直在访问公开的成员函数,对应于通过 D-Bus 公开的对象。有什么方法可以让我访问(公共)数据成员吗?如果有,怎么做?
我也在这里阅读-
[http://www.qtcentre.org/archive/index.php/t-24238.html]
不能通过 D-Bus 传递指针。只是想确认一下。
【问题讨论】:
能否访问对象的数据成员取决于它们是声明为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.
}
我判断这门课可能是正确编写的,并且会阻止你尝试不可能的事情。
【讨论】: