c++类中的成员函数与非成员函数除了位置外还有什么区别吗?何时要把函数做成成员函数,何时做成非成员?

刚开始学c++的类烦请大神们出手相助,何时将函数制成成员函数或者非成员函数?有什么条件吗?

首先,我们用一个类来表示我们要解决问题的领域中的一个实体。 例如 来图书馆借书 的 “用户”。 这个用户有自己的信息, 和对这个信息有关处理的函数, 例如:  通知这个用户他借的书要到期归还了。  你可以写一个函数, 这个函数需要知道这个用户的各种信息(他的书单,每本书的归还日期,他的联系方式...) , 这个函数如果在这个类中, 就可以方便地访问到用户的各种信息。  如果在类之外, 那么就会出现至少两个问题: 

1)访问信息不方便

2)如果“用户” 类中的信息的表达有变化, 我们不能保证这个非成员函数也一起变化。 

当然有区别啦,

你先理解一下什么叫1.类,2.对象,3.实例,然后再看你这个问题

区别:

1.成员函数是写在类中的函数,一般函数不需要写在类中

2.一般的函数只要包含了声明它的头文件,那么就随便调用。但成员函数是依托于类的对象调用的。

比如,一般函数直接调用func1();成员函数依托对象调用    s.func2() 或者  Student::func2()

3. 为什么要依托于对象调用的函数?

因为我们有时候希望不是所有函数都可以在任何地方调用,

在编程解决一个具体事务时,我们希望一些具有共同特征的需求可以归纳抽象出一个集合,通过这个集合来统一完成一些与他们相关的操作。

这个时候这些操作只需要用于这个集合,我们不希望集合外边的其他需求可以使用集合内的操作,毕竟它们的特征是有差别的。

所以面向对象的编程就设计出类和成员函数这种东西,以实现我们说的抽象出一个集合,通过依托于集合调用的函数完成集合相关的操作。

 

成员函数有一个隐式的this指针作为参数。

用成员函数还是非成员函数主要是概念上的区别。