C++中什么是类型?函数也是类型吗?

下面是帮助文档里的一段代码,ofstream可以被typedef定义为一种新的类型,这里是为什么呀?typedefbasic_ofstream<char,char_tra... 下面是帮助文档里的一段代码,ofstream可以被typedef定义为一种新的类型,这里是为什么呀?
typedef basic_ofstream<char, char_traits<char> > ofstream;
展开
 我来答
liang118038_0
2010-07-25
知道答主
回答量:13
采纳率:0%
帮助的人:5万
展开全部
typedef不是定义新的类型,只是声名一个新的名字而已,跟宏差不多,只是加了语法检查。
不好意思没看题目,楼上已答得比较清楚,我就不多话了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FrankHB1989
2010-07-22 · TA获得超过4.2万个赞
知道大有可为答主
回答量:4569
采纳率:100%
帮助的人:3056万
展开全部
basic_ofstream是一个类模板,class basic_ofstream<char, char_traits<char> >是这个模板全特化后的一个实例,是一个类,可以用typedef定义一个标识符ofstream表示basic_ofstream<char, char_traits<char> >。一个类是一个类型。除了类以外,基本类型(例如int)、数组类型、结构体类型都是类型。
针对确定类型的可以声明或定义类型的实例。类型的实例是一个对象(这里和“面向对象”里面的“对象”无关)。例如int a;声明一个int类型的对象a;float f[10];声明一个float[10]类型的对象f,其中float[10]表示由10个连续的float构造的复合类型,是一个数组类型;ofstream fout;声明一个类ofstream的对象fout,也可以说是ofstream类型的对象。
函数也有类型,但比较少提到。一般说的函数是函数的实例,用于函数声明和定义,之后就可以用适当的形式进行调用。
例如int main(int* argc, char*[] argv);表示一个函数(这里是原型,可以用于声明),它的类型是int(int*, char*[]),此外对应的函数签名是main(int*, char*[]),对应指针类型是int(*)(int*, char*[]),对应引用类型是int(&)(int*, char*[])。函数类型一般仅用于模板参数化类型等少数场合,函数签名用于分辨重载函数,而函数指针类型和函数引用类型的实例用于传递回调函数参数。
====
[原创回答团]

参考资料: 原创

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式