简单的C语言问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的C语言问题?相关的知识,希望对你有一定的参考价值。
请问,下面一幅图哪里用到了重载成员函数?何为重载成员函数!
百度百科:重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个函数完成不同的功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。不能只有函数返回值类型不同。
你图片上的几个grade函数就是重载函数啦!
参考技术A 把重载,记成重名就成了。float grade();
float grade(float a);
float grade(int a);
这3个函数,名称相同,参数不同(个数不同,或者参数类型不同),这就是重载。本回答被提问者和网友采纳 参考技术B 重名不重参的函数,系统调用时,根据不同的参数选择不同的函数,
假如你想定义一个加法函数,如果参数是数字就把它加起来,如果参数是字符就把它续在后面,这样定义重名函数,做不同的功能,在主函数调用时,只用一个函数,传不同的参数,他就会选择做不同的处理,好方便! 参考技术C 重载函数就是同名函数,但是参数的个数和类型可以不一样!
关于C语言数据类型转换的一个小问题,很简单哦!!
chara;intb;floatc;doubled; 则表达式a*b+c-d值的类型是什么? 请解释一下原理啊,谢谢
参考技术A 数据类型转换有两种:a强制类型转换,通过函数实现,如
charc='a';inti;i=int(a);//强制转换,但不会改变a本身的类型。
b自动类型转换,通过编译器自动实现,
不同类型的数据在一个表达式中会自动转换为最长的类型:
如你定义的chara;intb;floatc;doubled;
计算a*b+c-d时,按计算顺序说明类型转换:
1a*b//char类型的a转换为int类型的值,再和int类型的b相乘
2a*b+c//int类型的a*b转换为float类型值,再和float类型的c相加
3a*b+c-d//float类型的(a*b+c)转换为double类型的值,再和double类型的d相减
不考虑过程,最终表达式的值为最长类型(这里是double)的值
以上是关于简单的C语言问题?的主要内容,如果未能解决你的问题,请参考以下文章