刚开始学c++的类烦请大神们出手相助,何时将函数制成成员函数或者非成员函数?有什么条件吗?
首先,我们用一个类来表示我们要解决问题的领域中的一个实体。 例如 来图书馆借书 的 “用户”。 这个用户有自己的信息, 和对这个信息有关处理的函数, 例如: 通知这个用户他借的书要到期归还了。 你可以写一个函数, 这个函数需要知道这个用户的各种信息(他的书单,每本书的归还日期,他的联系方式...) , 这个函数如果在这个类中, 就可以方便地访问到用户的各种信息。 如果在类之外, 那么就会出现至少两个问题:
1)访问信息不方便
2)如果“用户” 类中的信息的表达有变化, 我们不能保证这个非成员函数也一起变化。
当然有区别啦,
你先理解一下什么叫1.类,2.对象,3.实例,然后再看你这个问题
区别:
1.成员函数是写在类中的函数,一般函数不需要写在类中
2.一般的函数只要包含了声明它的头文件,那么就随便调用。但成员函数是依托于类的对象调用的。
比如,一般函数直接调用func1();成员函数依托对象调用 s.func2() 或者 Student::func2()
3. 为什么要依托于对象调用的函数?
因为我们有时候希望不是所有函数都可以在任何地方调用,
在编程解决一个具体事务时,我们希望一些具有共同特征的需求可以归纳抽象出一个集合,通过这个集合来统一完成一些与他们相关的操作。
这个时候这些操作只需要用于这个集合,我们不希望集合外边的其他需求可以使用集合内的操作,毕竟它们的特征是有差别的。
所以面向对象的编程就设计出类和成员函数这种东西,以实现我们说的抽象出一个集合,通过依托于集合调用的函数完成集合相关的操作。
成员函数有一个隐式的this指针作为参数。
用成员函数还是非成员函数主要是概念上的区别。