韩祥波
摘要:探讨了函数重载、函数模板、类模板、运算符重载、运算符重载在类模板中的应用等案例,通过在计算机专业的面向对象程序设计课程中多次教学实践,进一步提高了学生的综合编程能力和动手积极性。
关键词:C++;类模板;运算符重载;函数重载;教学实践
中图分类号: G642.0 文献标识码:A 文章编号:1009-3044(2018)29-0104-02
1 引言
在面向对象的教学过程中经常遇到学生对运算符重载和模板方面的疑惑,单纯的形式记忆和理解在具体应用中往往问题颇多,本文针对这两个教学难点进行分析探讨。
2 教学实践
2.1从函数到函数重载
虽然客户没问题了,但这几个函数仅仅因形参表的不同而一一定义。这种多个函数的雷同现象也需进一步凝练概括,于是函数模板出现了。
2.2从函数重载到函数模板
可以看到代码精简,替换掉了无数个函数,提高了编程效率。
2.3从函数重载到运算符重载
由于运算符重载的形式上的特殊性而使得不少学生难以熟练使用。其实运算符重载本质上就是函数重载。只是这时的函数名不再是具体规范的标识符,而是特殊的符号即运算符,但此时对于具体的运算赋予了更多更广的应用。如普通的加号在重载后即可实现复数的相加也可实现文件的合并等。
由于运算符直接做函数名不符合函数名规范而编译出错,需要在运算符名前加operator关键词。
2.4从函数模板到类模板
2.5运算符重载在类模板中的应用
运算符重载和类模板作為C++学习中的两个难点,一起使用时,在彼此限制影响的情形下更需具体分析对待。下面通过数组类模板的定义来实现数组的初始化、赋值、读写等。
3 结论
通过上述案例的教学实践,更多结合抽象数组类模板中运算符重载的应用,可以看出有效的使用运算符重载和模板等,能使程序不再依赖具体数据类型,使其有了更强的通用性,很大的提高编程效率。
参考文献:
[1] 罗宪,王家伟,周建丽.“高级语言程序设计”“面向对象程序设计”精品课程教学改革与实践[J].重庆交通大学学报:社会科学版,2009,9(1) :142-144.
[2] 谭浩强.C++面向对象程序设计[M].北京:清华大学出版社,2006.
[3] 吕凤翥.C++语言基础教程[M].北京: 清华大学出版社.1999.
[4] 张敏辉.将案例驱动教学法运用于程序设计类课程的实践与成效[J].高等教育研究,2012,29(2):29-31.
【通联编辑:王力】