C++中什么是类型?函数也是类型吗?
下面是帮助文档里的一段代码,ofstream可以被typedef定义为一种新的类型,这里是为什么呀?typedefbasic_ofstream<char,char_tra...
下面是帮助文档里的一段代码,ofstream可以被typedef定义为一种新的类型,这里是为什么呀?
typedef basic_ofstream<char, char_traits<char> > ofstream; 展开
typedef basic_ofstream<char, char_traits<char> > ofstream; 展开
展开全部
typedef不是定义新的类型,只是声名一个新的名字而已,跟宏差不多,只是加了语法检查。
不好意思没看题目,楼上已答得比较清楚,我就不多话了!
不好意思没看题目,楼上已答得比较清楚,我就不多话了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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*[])。函数类型一般仅用于模板参数化类型等少数场合,函数签名用于分辨重载函数,而函数指针类型和函数引用类型的实例用于传递回调函数参数。
====
[原创回答团]
针对确定类型的可以声明或定义类型的实例。类型的实例是一个对象(这里和“面向对象”里面的“对象”无关)。例如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*[])。函数类型一般仅用于模板参数化类型等少数场合,函数签名用于分辨重载函数,而函数指针类型和函数引用类型的实例用于传递回调函数参数。
====
[原创回答团]
参考资料: 原创
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询