c++ 里有没有一个函数,能够判断所给的参数的数据类型?

比如int a,那么把a作为参数,就返回字符串 ”int”

第1个回答  2011-01-30
第二个错了。
形参里面带赋值的叫缺省参数,也就是你如果在调用函数的时候不给它传值,就默认使用形参表的缺省值。
因为参数有可能有多个,所以,规定缺省参数必须从右至左。
就说第二个吧,假设你想使用a的缺省值,而给b另外传一个值是没有办法做到的,因为你的调用肯定会是 AA(3)编译器不能判断你这个3是传给a的还是传给b的,因为a虽然有缺省参数,但是它依然是可以接受传值的。
第2个回答  2011-01-30
函数的参数类型是在写函数时确定的

在 c++ 中,对于参数为 int 的函数,根本不能传非 int 的参数

必然需要进行隐式或显式的转换

=====

或许你要找的是 typeid 之类的

=====

至于自己写的话,就是利用 template 写一堆函数进行分别处理本回答被提问者采纳

c++哪个函数能够获取变量类型?
C++没有自带这样的函数 你可以用自定义函数 我们用运算符sizeof(不是函数)来判断数据类型 因为不同数据类型内存字节数不一样 比如char是1 int是8 用法 sizeof(类型说明符,数组名或表达式)或sizeof 变量名 定义 sizeof是C\/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型...

c++中有没有取一个给定数字绝对值的数据类型
fabs()这个函数可以取绝对值

c\/c++如何判断变量的数据类型?
c\/c++判断变量的数据类型可以采用下面的代码:include <typeinfo> using namespace std;...cout << typeid(d).name() << endl;

c++中的%if,有什么用,double是什么函数,有什么用
C语言math.h库中的sin, cos, tan的参数是 弧度制, 不是角度制. 这点要明确...lf是转换说明符, 这个说明符代表一个double类型的值 而对应的%f是float类型.double 是一个数据类型说明符(也可以说是C语言的关键字)double代表双精度浮点类型的集合的名称 而float代表单精度浮点类型的集合的名称 双和...

c++怎样编写不确定参数个数的函数
C++定义的函数是可以支持函数参数个数不确定的。VA_LIST是在C++语言中解决变参问题的一组宏,所在头文件:#include <stdarg.h>,用于获取不确定个数的参数同时使用...代替多个参数,调用时只需要根据需要传入多个参数。VA_LIST的用法:首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针;...

c++里面怎么样用一个函数来交换一个数的十位和个位?
没有这种函数,不过可以自己写一个,先判断参数在10到99之间,该数除以10就是十位,取模就是个位。然后个位乘以10,加上十位作为返回值,就完成了

C++ 如何判断输入的数据是否为整数
定义接收内容的字符串 string s,调用C++的getline方法,格式如下:getline(cin,s),getline可以接收空格,遇到换行输入结束。然后依次判断字符串中的字符,是否为数字,如果遇到一个非数字的字符,则不是整数。bool isDigit(char a) { if (a - '0' == 0 || a - '0' == 1 || a - '0'...

c++怎样编写不确定参数个数的函数?
\/\/ Returns some number (typecast prevents truncation)} int main(){ cout<< average ( 3, 12.2, 22.3, 4.5 ) <<endl;cout<< average ( 5, 3.3, 2.2, 1.1, 5.5, 3.3 ) <<endl;} 补充一句:不确定输入参数个数的函数应该尽量的避免使用,除非万不得已,最好不要用。

C++ 输入的值类型不确定怎么办??
一楼的很好啊,用字符串存储输入的数据,然后对数据进行强制转换吧,这样string型的数据就变成了ASCII码了,这样就很容易确定这个数据的类型了,根据ASCII码的范围判断就可以了

C++编程:定义一个函数,比较两个数的大小,形参分别使用指针和引用_百 ...
include<iostream> include<stack> using namespace std;float compare(float *a,float &b) \/\/a为指针,b为引用 { if (*a>b) return *a;else return b;} int main(){ float x,y;cin>>x>>y;cout<<"The max="<<compare(&x,y)<<endl;return 0;} ...

相似回答