【发布时间】:2012-07-16 16:06:41
【问题描述】:
由于两个相互矛盾的原因,我不太了解 C++ 头文件:
我认为头文件的目的通常是分离接口和实现。换句话说,客户端通过头文件来学习如何使用类,而不必担心类在内部实际上是如何实现这个功能的。
那么,为什么 C++ 类的私有变量会在其头文件中指定?
在我看来,在头文件中包含私有变量违反了接口和实现的分离。直观地说,我认为将私有变量放在源文件中会更有意义,因为这是不暴露给外界的文件。
也许我只是误解了头文件的用途,1.上面是完全错误的吗?以什么方式?
【问题讨论】:
-
除了
friend函数,我敢打赌这只是编译器确定类大小的技术限制。 -
@DaveSwersky 这个骗子没有回答 OP 的第二个问题,“那么,为什么在其头文件中指定 C++ 类的私有变量?”
-
@Mysticial:该问题的第二个答案解决了这两点。
-
@NoobOverflow 您在第 1 点上是正确的。第 2 点也是一个好问题。大部分情况下,答案是 C++ 编译模型很烂。
-
2 所以使用类的代码知道类有多大,所以它知道为它在堆栈上创建的实例等留出多少空间。
标签: c++