1
我想在Ada.sequential_IO上放置包装或外观。这有点难看,但我正在尝试使用一些自动翻译的代码。所以,我有:Ada:在(通用)包中隐藏实现名称
with Ada.sequential_IO;
generic
type element_type is private;
package queue_file is
package implementation is new Ada.sequential_IO (element_type);
subtype instance is implementation.file_type;
function eofQ (channel : instance) return Boolean renames implementation.end_of_file;
procedure readQ (channel : in instance; item : out element_type) renames implementation.read;
-- etc.
end queue_file;
这是所有非常好,但名称queue_file.implementation是可见的。我试图把它移入私人部分,并写包实现是私人的,但它没有它。那么有什么方法可以隐藏名字?
我不认为我会调用子程序'eofQ','readQ'等。为什么不只是'eof','read'? (或甚至'End_Of_File','Read'?:)) –
+1对于Simon:为了明确它们是队列操作,使用限定名,queue_file.Read等 –
@Simon:这只是我' m试图做,这是自动将Pascal源代码转换成Ada。 Pascal名称eof,read等被超载,因为它们可以应用于文本类型的对象和X类型的文件类型的对象。如果您感兴趣,我可以给您提供完整和肮脏的细节,但它非常适用于特定应用程序。 – Michael