是否可以在QtCreator上隐藏自动完成弹出窗口中的C ++私有字段/方法?
虽然我看到了the bug report for QtCreator 2.0,QtCreator3.0上是否还存在同样的问题?这个问题有解决方法吗?任何帮助都会得到赞赏。提前致谢。
[示例代码]
// SomeClass.h
class SomeClass{
public:
void methodA();
private:
int fieldB;
void methodB();
}
//main.cpp
int main()
{
SomeClass obj;
______________
obj.|fieldB | <- Popup window appears when '.' key is entered.
|methodA() | // I want to hide private fieldB and methodB from the popup
|methodB() | // if possible.
|_____________|
return 0;
}
答案 0 :(得分:1)
目前在qt创作者中肯定没有这样的功能。正如错误报告评论指出的那样,可能很难分辨哪些内容可以访问 - 主要是因为朋友类/函数,继承和protected
模板。 Qt创建者真的必须包含完全符合标准的解析器,这可能是太多了 - 最新的创建者已经开始在我的更复杂的项目上工作相当缓慢。
答案 1 :(得分:1)
看看http://en.wikipedia.org/wiki/Opaque_pointer#C.2B.2B
它只是让你有一个结构/类的'私有成员指针',它定义了应该从你的类用户隐藏的所有内容。它是一个真正私密的成员,其余的应该是公开的或继承的。
它的目的是减少编译时间,同时具有清晰的界面。同样Qt
通过d-ptr模式使用它很多。 http://qt-project.org/wiki/Dpointer
欢呼声
答案 2 :(得分:1)
你做不到。嘿,没有必要!
可能“自历史开始以来”开发人员使用可以想象的最简单的技巧。他们为所有私人领域选择特定的前缀。有些人选择m_
,但我宁愿建议你只使用_
,因为最不可能有人开始使用“正常”功能的名称。因此,将类的定义调整为
class SomeClass{
public:
void methodA();
private:
int _fieldB;
void _methodB();
}
哦,QtCreator也很聪明:所有匹配的符号都在列表的底部。享受!