当前位置:
首页 >
eclipse不支持泛型_C++ 泛型编程(一)
发布时间:2024/4/14
55
豆豆
生活随笔
收集整理的这篇文章主要介绍了
eclipse不支持泛型_C++ 泛型编程(一)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
点击上方“蓝字”,发现更多精彩。本文作为泛型编程相关知识点的第一篇,主要对一些基本概念进行总结。泛型编程01PART基本概念①.泛型就是不使用具体数据类型,而是使用一种通用类型 T 来进行程序设计;T 只是一个占位符,实际在 T 的位置真实的数据类型取决于用户的需求;占位符的替换由编译器在编译阶段完成。②.泛型编程为了避免因数据类型的不同,而被迫重复编写大量相同业务逻辑的代码,因此发展了泛型及泛型编程技术;泛型编程就是独立于任何特定类型的方式编写代码,常用到STL容器、迭代器、和算法都是泛型编程的例子。02PART模版①.概念:模版是 C++ 泛型编程的基础,一个模版就是一个创建类或者函数的蓝图。②.实例化:编译器用推断出的模版参数来为我们创建一个特定版本的函数实例,整个过程发生在编译阶段。03PART与面向对象编程比较①.多态面向对象编程支持运行期多态,如 virtual 函数的动态绑定发生在运行期;泛型编程支持编译期多态,在编译器根据模版实例出针对不同类型的具体代码。②.接口面向对象编程支持显式接口,是由函数名称、参数类型、返回类型构成;泛型编程支持隐式接口,是基于有效的表达式推断出来的。04PARTtypename
①.声明模版参数
可以使用 class 或者 typename 声明模版参数,二者含义相同,可用互换。
template<class T> class Widget;//使用 classtemplate<typename T> class Widget;//使用 typename②.声明从属嵌套类型
当声明一个从属嵌套类型时,必须使用 typename 关键字,告诉编译器这是个类型。因为我们可以用域作用符 :: 来访问 static 成员和类型成员,在模版代码中,编译器遇到 T:: x 时,会默认假定访问的成员名字而不是类型。
template<typename C>void Print2Nd(const C& container){ typename C::const_iterator iter(container.begin()) //确认是类型不是名称}扫码关注持续获取最新文章c++学习 算法与数据结构总结
以上是生活随笔为你收集整理的eclipse不支持泛型_C++ 泛型编程(一)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 无悔入华夏怎么一直显示服务器,无悔入华夏
- 下一篇: 如何利用《C++ Primer》学习C+