如何在QtCreator上隐藏自动完成弹出窗口中的C ++私有字段/方法

时间:2014-02-18 16:06:31

标签: c++ qt qt-creator

是否可以在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;

}

3 个答案:

答案 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也很聪明:所有匹配的符号都在列表的底部。享受!