【发布时间】:2011-12-23 21:39:16
【问题描述】:
我想知道是否可以在头文件中定义一些函数,然后在同一个头文件中使用它们,同时将它们隐藏起来?
例如,我可以先定义一些通用辅助函数(特定于数据结构),然后在使用这些函数的同一个标头中定义一些数据结构吗?
例如:
template<class T>
void Swap(T &a, T &b)
{
T temp = a;
a = b;
b = temp;
}
但我不希望Swap() 干扰其他同名函数。
我可以将它设为私有方法,但我必须为使用它的每个类提供相同的实现,或者让它们成为朋友类...
【问题讨论】:
-
关于 Swap 干扰其他交换功能,这就是为什么发明了命名空间,使用它们!据我所知,您只能通过在类或结构中将它们设为私有来隐藏头文件中的函数。您可以仅使用此函数作为私有函数创建一个结构,并将您正在创建的类指定为朋友类。