函数模版
来源:互联网 发布:mac 链接阿里云服务器 编辑:程序博客网 时间:2024/05/01 11:38
一个我比较喜欢的视频,虽然我们都是普通的程序员,但是我们彼此都努力着,为了梦想、为了生活。
这课比较轻松,不错开始视频学习之前,还是要有点c++基础的,不然....你懂的。因为课程都是围绕c++模板的,当然c++基本的东西相信大家都能自己学明白的。我也是学c++算是比较长时间了,不过还有很多东西感觉不行。而且一直开发都是c,c++没怎么运用,但是不希望遗忘这么牛的语言,呵呵。加油...
步入正题:
课程主要三点<1> 动多态 <2> 静多态 <3> 函数模板
<动多态> 个人理解:动多态就是在运行时进行类的实例化(包括参数,返回值等),也就是所谓的延迟绑定技术,绑定发生在运行期间;
实现方式:继承、虚函数、指针;其中虚函数用的比较多;
代码练习:
<静多态> 个人理解:静多态就是在编译期间进行类的实例化(包括参数,返回值等),也就是所谓的静态绑定static-binding,绑定发生在编译期间;
实现方式:重载、模板;
代码练习:
<函数模板> 个人理解:函数的参数在编译期间进行实例化,可以指定多个参数,可以实现一个接口,多种数据类型使用的功效,类模板与函数模版类似,后面课程管哥会重点说类模版;
实现方式:模版;
代码练习:
第一课比较轻松,我记住了一句话:“让编译器成为我们的奴隶”.....但是...代码质量确实要不断提高,有时候不能完全相信编译器,尤其是linux下的Qt,我是被坑了n多次了(最牛的一次就是竟然调用了一个其它头文件的接口,而且我还没有引用该头文件,同时运行还没出错,在android上跑也ok,太牛了!!!)。
这课比较轻松,不错开始视频学习之前,还是要有点c++基础的,不然....你懂的。因为课程都是围绕c++模板的,当然c++基本的东西相信大家都能自己学明白的。我也是学c++算是比较长时间了,不过还有很多东西感觉不行。而且一直开发都是c,c++没怎么运用,但是不希望遗忘这么牛的语言,呵呵。加油...
步入正题:
课程主要三点<1> 动多态 <2> 静多态 <3> 函数模板
<动多态> 个人理解:动多态就是在运行时进行类的实例化(包括参数,返回值等),也就是所谓的延迟绑定技术,绑定发生在运行期间;
实现方式:继承、虚函数、指针;其中虚函数用的比较多;
代码练习:
点击(此处)折叠或打开
- #include <iostream>
- using namespace std;
- /************************************************************************/
- /* 动多态 */
- /************************************************************************/
- class PICTURE
- {
- public:
- virtual void draw() = 0;
- };
- class PNG : public PICTURE
- {
- public:
- virtual void draw()
- {
- cout << "draw png\n";
- }
- };
- class JPG : public PICTURE
- {
- public:
- virtual void draw()
- {
- cout << "draw jpg\n";
- }
- };
- static void drawImage(PICTURE * pic)
- {
- pic->draw();
- }
- int main(int argc, char * argv[])
- {
- ///< 动多态
- PNG * pg = new PNG;
- JPG * jg = new JPG;
- drawImage(pg);
- drawImage(jg);
-
- delete pg;
- delete jg;
- return 0;
- }
实现方式:重载、模板;
代码练习:
点击(此处)折叠或打开
- #include <iostream>
- using namespace std;
- /************************************************************************/
- /* 静多态、 */
- /************************************************************************/
- class GIF
- {
- public:
- static void draw()
- {
- cout << "draw gifn";
- }
- };
- template<typename IMAGE>
- void drawPicture()
- {
- IMAGE::draw();
- }
- int main(int argc, char * argv[])
- {
- ///< 静多态 格式理解:对drawPicture()函数指定模版参数GIF
- drawPicture<GIF>();
- return 0;
- }
实现方式:模版;
代码练习:
点击(此处)折叠或打开
- #include <iostream>
- using namespace std;
- /************************************************************************/
- /* 函数模版 */
- /************************************************************************/
- template <typename T>
- bool maxT(T a1, T a2)
- {
- return a1 > a2;
- }
- int main(int argc, char * argv[])
- {
- ///< 函数模版简单测试 模版在编译期间实例化【让编译器成为我们的奴隶】
- cout << "2 > 3 ? " << ((1 == maxT(2, 3)) ? "true" : "false");
- return 0;
- }
- 模版函数
- 模版函数
- 模版函数
- 函数模版
- 函数模版
- 函数模版
- 函数模版
- 模版函数
- 函数模版
- 模版函数
- 函数模版
- 函数模版与模版函数
- 模版——函数模版、类模版
- 类模版中函数模版
- 函数模版与类模版
- 函数模版和类模版
- 模版笔记001 - 函数模版
- 函数模版和类模版
- xilinx错误集锦
- 让其他的App唤起自己的App——Allowing OtherApps to Start Your Activity
- 基于Linux开源VOIP系统LinPhone[一]
- shell脚本 操作日志文件 && 读取文件 && 查询进程ID
- C语言系统内存被踩情况总结
- 函数模版
- Linux命令之unzip
- 解决Edit扩展类显示图片初始化时,图片处于全选状态
- java--IO ,输入输出
- 过时date.toLocaleString()的解决方法
- N沟道增强型MOS管双向低频开关电路
- hibernate的缓存问题
- UDT VC2008编译应用
- C语言系统自己管理内存分配的好处