私有变量是一种向类用户隐藏复杂性和实现细节的方法。这是一个相当不错的功能。但是我不明白为什么在c ++中我们需要将它们放在类的标题中。我看到这有两个令人讨厌的缺点:
- 它使用户的标题杂乱无章
- 每当修改内部结构时,它将强制重新编译所有客户端库
此要求背后是否存在概念上的原因?仅仅是为了简化编译器的工作吗?
您可以在标头中声明一个空结构,但随后只能在使用该结构时使用指向该结构的指针(并且不能分配一个)
—
棘手怪胎
@ratchetfreak:否,
—
MSalters 2012年
struct foo{};
不允许为空(),但可以使用前向声明(struct foo;
)。
@MSalters就是我的意思
—
棘轮怪胎
让我补充一点缺点:*在.h文件中编写私有函数头是浪费大量时间。(暂时忘记朋友课程)
—
Jonny