作为从ADA转换到C++的人,我非常想念的一件事情就是无法使用嵌套或本地函数。在ADA中,我可以这样做:
procedure TotalSum ()
is
function Sum (a : Float; b : Float) return Float;
is
begin
return a + b;
end Sum;
x : Float := 1.0;
y : Float := 1.0;
z : Float := 1.0;
sum : Float;
begin
sum := Sum(x,y);
sum := Sum(sum,z);
end TotalSum;
这样做的好处是我可以限制仅在本地使用的函数的范围。对于类,我习惯于声明私有函数以限制范围(这在某种程度上限制了范围)。但现在我正在将函数库实现为命名空间而不是类,并且我还没有找到一个很好的解决方案来限制我的局部函数的作用域。
在C++命名空间中实现以上目标的最佳实践是什么?
sumname::TotalSum()
和sumname::Sum()
。 - DimChtz