C++ 区分头文件中的非成员函数和成员函数

C++ 区分头文件中的非成员函数和成员函数,c++,header-files,C++,Header Files,作为类接口一部分的非成员函数应该在与类本身相同的头中声明 上面的引文来自C++初级读物第5版。我想知道是否有一种最佳实践来区分头文件中的非成员函数和成员函数?还是根本没有必要 或者这样说: 作为类的设计者,是否有必要在头文件中告诉用户哪个函数只是接口的一部分,哪个函数是成员函数 语言语法已经在定义和声明方面区分了成员和非成员 声明 类示例 { 公众: void成员(int);//成员,在类定义内 friend std::istream&operator>>(std::istream&,Examp

作为类接口一部分的非成员函数应该在与类本身相同的头中声明

上面的引文来自C++初级读物第5版。我想知道是否有一种最佳实践来区分头文件中的非成员函数和成员函数?还是根本没有必要

或者这样说:
作为类的设计者,是否有必要在头文件中告诉用户哪个函数只是接口的一部分,哪个函数是成员函数

语言语法已经在定义和声明方面区分了成员和非成员

声明
类示例
{
公众:
void成员(int);//成员,在类定义内
friend std::istream&operator>>(std::istream&,Example&);//非成员,用关键字friend标记
}
std::ostream&operator(std::istream&is,示例&){return is;}//无示例::

std::ostream&operator你是什么意思?成员在类定义内声明,非成员在类定义外声明。您还想到了什么样的区别?@molbdnilo如果它们是在类之外定义的,则需要
ClassName::
qualification@I意思是在头文件中,是否有必要的,添加注释以区分接口函数/成员函数和非成员函数注释仅供人类使用。当谈到接口时,它不是指Java关键字
接口
,而是所有定义的与类相关的非私有符号。我所做的是对非成员函数使用snake_case(),对成员函数使用camelCase()。
class Example
{
public:
    void member(int); // member, inside the class definition
    friend std::istream & operator>>(std::istream &, Example &); // non-member, marked with keyword friend
}

std::ostream & operator<<(std::ostream &, Example &); // non-member, outside the class definition
void Example::member(int param) {} // Example:: qualification on the name
std::istream & operator>>(std::istream & is, Example &) { return is; } // no Example::
std::ostream & operator<<(std::ostream & os, Example &) { return os; } // no Example::