我想知道是否可以在头文件中定义一些函数,然后在同一个头文件中使用它们,同时将它们从其他东西中隐藏起来?例如,我可以先定义一些通用的帮助函数(特定于数据结构),然后在使用这些函数的相同头文件中定义一些数据结构?在头文件中隐藏非成员函数
如:
template<class T>
void Swap(T &a, T &b)
{
T temp = a;
a = b;
b = temp;
}
但我不想Swap()
与具有相同名称的其他功能干扰。
我可以让它变成一个私有方法,但后来我不得不提供具有相同实现使用它的每一个类或让他们的朋友类...
关于交换干扰其他交换功能,这就是为什么命名空间被发明,使用它们!据我所知,你只能通过将它们隐藏在类或结构中来隐藏头文件中的函数。你可以使用这个函数作为一个私有结构,并指定你正在创建的类作为一个朋友类。 – leetNightshade 2011-12-23 21:45:58