c++ 如何定义一个任何类型的变量? 定义之后又如何使用?
比如说,我希望一个变量a,可以是char,int,bool,float,*int,*char,*bool,*float,*double等类型,甚至还可以是自定义的一个结构...
比如说,我希望一个变量 a ,可以是 char,int,bool,float, *int,*char,*bool,*float,*double等类型,甚至还可以是自定义的一个结构体.(就好比 vb 中的 varient 类型,可以赋予包括字符串,数字,true/false 中的任何值)那么这个 a 应该怎样定义??
展开
2013-04-09
展开全部
可以使用C++中的联合,可以向下面这样定义union anyting{ int ival; double dval; char chval;.......}; 使用时可以anything myval;myval.ival = 5; //这时myval包含的是一个int类型的变量值为5myval.dval = 3.1415926 //这时myval包含的是一个double类型的变量值为3.1415926,之前的int
类型的值被覆盖了。这样使用. 联合可以在需要的时候做为声明中的任何类型的变量来使用,不过在为其中一种类型赋值的同时会覆盖它之前保存的其它类型的值,因为定义中所有类型都共享同一段内存空间.
类型的值被覆盖了。这样使用. 联合可以在需要的时候做为声明中的任何类型的变量来使用,不过在为其中一种类型赋值的同时会覆盖它之前保存的其它类型的值,因为定义中所有类型都共享同一段内存空间.
2013-04-09
展开全部
其实这个问题很好解决的,因为c++中有函数模板的,他的定义形式是:template<class type>或者是template<typename type>这样说你可能不太明白,咱们举个例子怎么用吧!比如说求两个数的大小:#include<iostream>
using namespace std;
template <class T>//定义一个类型为T 但是不确定是什么类型
T max(T m1,T m2)
{return(m1>m2)?m1:m2;}
void main()
{
cout<<max<int>(2,5)<<"\t"<<max<double>(2.0,5.0)<<endl;//这里可以用什么类型都行
}不知道是不是你想要的答案!希望可以帮助你!
using namespace std;
template <class T>//定义一个类型为T 但是不确定是什么类型
T max(T m1,T m2)
{return(m1>m2)?m1:m2;}
void main()
{
cout<<max<int>(2,5)<<"\t"<<max<double>(2.0,5.0)<<endl;//这里可以用什么类型都行
}不知道是不是你想要的答案!希望可以帮助你!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/*********************************
用模板函数
********************************/
#include<iostream.h>
template<typename T>
T a; // T可以说任意类型
T max(T a, Tb)
{
if(a>b)
return a;
else return b;
}
void main()
{
cout<<max(1,4)<<endl;
cout<<max(1.5,2.5)<<endl;
}
用模板函数
********************************/
#include<iostream.h>
template<typename T>
T a; // T可以说任意类型
T max(T a, Tb)
{
if(a>b)
return a;
else return b;
}
void main()
{
cout<<max(1,4)<<endl;
cout<<max(1.5,2.5)<<endl;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |