根据C++primer 5th的7.1节和7.2.1的第一段,我的理解是
一个函数的声明,如果是在包含一个类的定义的头文件里(可能在class定义里面的public中,也可能在class的定义外面),则这个函数就是这个类的interface的一部分。
而一个函数,只要是在一个类的定义中间出现,不管它是在类的public部分还是private部分,它都是这个类的member function。
**************************************************************************************************************************************
区别以上两个概念有什么用呢?作用在于(我的理解):
关于interface的情况:
如果你想知道有哪些东西,是你在使用这个类的时候可以用的,那么你就要关注,这个类的interface定义了什么;
如果你是这个类的作者,你就要关注哪些东西是你允许别人使用的,就要放到intereface里面。
因此,你需要明确你可以怎么样给出interface:在class definition里的public,和header中class definition外的部分。
关于member function的情况:
当你编写了一个函数时,你需要明确这个函数能不能使用一个类的private对象时,你就要需要知道这个函数是不是这个类的member function。
如果一个函数不是member function,但是需要使用private对象时,你可以声明其为friend(对于另一个class也成立)。