Ada:规范的公共和私有部分是否分开?

Ada:规范的公共和私有部分是否分开?,ada,Ada,我了解到Ada规范文件(*.ads)中有一个公共部分和一个私有部分,只有公共部分应该被认为是编译单元(通常是一个包)的用户 在不同的文件中分离规范的公共部分和私有部分实际上并不常见 因此,最后,这样一个包的用户知道规范层上包的内部,但不能使用它。我就在这里吗 谢谢大家,干杯, Wolfgang不,Ada不允许您将包规范的公共部分和私有部分分开 Ada最初的首席设计师Jean Ichbiah在一种语言上做了一些工作,这种语言实际上将包的公共、私有(数据结构)和实现部分分开,但这并没有成为Ada的一

我了解到Ada规范文件(*.ads)中有一个公共部分和一个私有部分,只有公共部分应该被认为是编译单元(通常是一个包)的用户

在不同的文件中分离规范的公共部分和私有部分实际上并不常见

因此,最后,这样一个包的用户知道规范层上包的内部,但不能使用它。我就在这里吗

谢谢大家,干杯,
Wolfgang

不,Ada不允许您将包规范的公共部分和私有部分分开

Ada最初的首席设计师Jean Ichbiah在一种语言上做了一些工作,这种语言实际上将包的公共、私有(数据结构)和实现部分分开,但这并没有成为Ada的一部分

此外:

  • 子包的私有部分和主体可以看到其父包的私有部分
  • 私有子包的规范可以看到其父包的私有部分
。。。因此,您不能总是完全忽略包规范的私有部分

一个实际例子:

当我编写单元测试时,我喜欢将测试套件放在我正在测试的包的子包中。这样,我的测试用例不仅限于检查包中声明的类型的公共视图