本次实验主要涉及类和对象,构造函数和折构函数的内容
1.当把成员函数定义写在类的外部时,需要使用 类名+范围解析运算符 ::,才能对标类中声明的函数。此时函数定义不能写在头文件中。 如果将类的成员函数定义写在了头文件中,则当在其他文件中 include 头文件时,会出现重复定义函数的错误。
但是自我感觉,将成员函数的定义写在类定义的内部,便于模块化使用
2.本次实验写出构造函数,析构函数的函数内容。
构造函数的函数名是与类同名,并可以使用函数重载
对象的初始化往往不只是对成员变量赋值这么简单,也可能还要进行一些动态内存分配、打开文件等复杂的操作,在这种情况下,就不可能用初始化基本类型变量的方法来对其初始化。虽然可以为类设汁一个初始化函数,对象定义后就立即调用它,但这样做的话,初始化就不具有强制性,难保程序员在定义对象后不会忘记对其进行初始化。面向对象的程序设计语言倾向于对象一定要经过初始化后,使用起来才比较安全。因此,引入了构造函数(constructor)的概念,用于对对象进行自动初始化。但构造函数的作用不仅是初始化
构造函数和析构函数的区别是,析构函数名=~构造函数名。他们分别是在在对象创建和删除时自动调用。因此,即使没有写构造函数和析构函数的话,系统会自动生成并隐式调用。
3.函数重载的规则:
函数名相同,参数列表必须不同(个数不同、类型不同、参数排列顺序不同等)
函数重载的作用:
重载函数通常用来在同一个作用域内 用同一个函数名 命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。
4.在最后调试时,出现error,提示是成员函数已有主体,后来经检查发现,在类定义的内容中所声明的成员函数后加了{ },虽然大括号内是空的,但仍然不可以,代表了之前已经将函数定义。之后所写的函数定义就错误了