C++笔记-空指针加强、auto自动类型
目录
空指针加强
auto自动类型
空指针加强
这里主要是0,NULL,nullptr之间的关系,在不同操作系统里面NULL的值是不一样的,所以,要尽量使用nullptr进行初始化。
如NULL在Windows中就是0
程序运行截图如下:
源码如下:
#include <iostream>
using namespace std;void test(int num){cout << "void test(int num) called!" << endl;
}void test(void *p){cout << "void test(void *p) called!" << endl;
}int main()
{void *p = NULL;test(p);test(NULL);test(nullptr);return 0;
}
auto自动类型
这里主要有以下几点:
1. auto自动类型;
2. auto与内部函数绑定机制;
3. 利用auto实现,回调函数在面向对象中的设计。
下面先来看第一点,程序运行截图如下:
这里如果用了g++等可能会出现简写,d为double,pd为double *
源码如下:
#include <iostream>
#include <typeinfo>
using namespace std;int main(int *argc, int *argv[]){double db = 3.14;double *pDB = &db;auto num = pDB;cout << typeid(db).name() << endl;cout << typeid(pDB).name() << endl;cout << typeid(num).name() << endl;getchar();return 0;
}
下面是auto与内部函数绑定,用auto实现,回调函数在面向对象中的设计,有一个新概念:
仿函数:创建一个函数指针,引用一个结构体或者一个类的内部公共函数。
程序运行截图如下:
源码如下:
#include <iostream>
#include <functional>
using namespace std;
using namespace std::placeholders;struct MyStruct{void add1(int a){cout << a << endl;}void add2(int a, int b){cout << a + b << endl;}void add3(int a, int b, int c){cout << a + b + c << endl;}
};int main(int *argc, int *argv[]){MyStruct s;auto func1 = bind(&MyStruct::add1, &s, _1);auto func2 = bind(&MyStruct::add2, &s, _1, _2);auto func3 = bind(&MyStruct::add3, &s, _1, _2, _3);func1(100);func2(1000, 2);func3(10, 200, 3);getchar();return 0;
}
C++笔记-空指针加强、auto自动类型相关推荐
- auto自动类型推断
文章目录 1 auto 1 auto auto在C++11之前是自动变量的含义(栈变量,局部变量),在C++11后赋予其新的作用:自动类型推断. auto可以在声明变量的时候根据初始值的类型自动为此变 ...
- 《Effective Modern C++》翻译--条款2: 理解auto自动类型推导
条款2: 理解auto自动类型推导 如果你已经读过条款1关于模板类型推导的内容,那么你几乎已经知道了关于auto类型推导的全部.至于为什么auto类型推导就是模板类型推导只有一个地方感到好奇.那是什么 ...
- C++知识整理系列(五)—— auto自动类型
目录 一.概念 二.auto推导的类型 三.案例 迭代器iterator访问 函数返回值和参数为auto 四.总结 参考 一.概念 在C++11引入了auto类型说明符,其作用:编译器替我们去分析表达 ...
- C++11 auto自动类型推导
1. auto类型推导 下面是auto的使用举例: auto x =5; //正确,x是int类型 auto pi = new auto(1); //正确,批是int* const auto* v = ...
- C++自动类型推导 : auto 与 decltype 用法
基本用法与区别 auto 总是推导出"值类型",绝不会是"引用",如果有引用,auto会把引用去掉,推导出值类型: auto 可以附加上 const.volat ...
- C++中 auto自动变量,命名空间,using作用以及作用域
1.auto关键字的用途 A:自动变量,可以自动获取类型,输出,类似泛型 B:自动变量,可以实现自动循环一维数组 C:自动循环的时候,对应的必须是常量 2.auto自动变量,自动匹配类型的案例如 ...
- 《流畅的python》学习笔记之python是什么类型的语言?
讨论类型时,最好考虑两条不同的坐标线! 强类型和弱类型 如果一门语言很少隐式转换类型,说明它是强类型语言.如果经常这么做,说明它是弱类型语言.其中,java,c++和python是强类型语言,php, ...
- 【Groovy】Groovy 动态语言特性 ( Groovy 中函数实参自动类型推断 | 函数动态参数注意事项 )
文章目录 前言 一.Groovy 中函数实参自动类型推断 二.函数动态参数注意事项 三.完整代码示例 前言 Groovy 是动态语言 , Java 是静态语言 ; 本篇博客讨论 Groovy 中 , ...
- 【Groovy】Groovy 动态语言特性 ( Groovy 中的变量自动类型推断以及动态调用 | Java 中必须为变量指定其类型 )
文章目录 前言 一.Groovy 动态语言 二.Groovy 中的变量自动类型推断及动态调用 三.Java 中必须为变量指定其类型 前言 Groovy 是动态语言 , Java 是静态语言 ; 一.G ...
最新文章
- 【NCEPU】吴丹飞:(CSAPP)计算机系统漫游
- 从零开始玩转logback
- gcc-5.4.0 static dwarf2 compile
- Linux shell - 重命名文件和文件夹(mv)
- rabbitmq接口异常函数方法_[项目更新] 集成RabbitMQ队列与EventBus总线
- CACHECLOUDV1.0慢日志定时任务创建流程分析
- pycharm的安装及破解
- 3dmax:3dmax三维VR渲染设置(V-Ray帧缓存、V-Ray全局开关、V-Ray图像采样器、自适应细分采样器、V-Ray环境、全局确定性蒙特卡、摄像机、颜色贴图)之详细攻略(切记收藏!)
- uni-app 小程序跳转微信小程序及APP端(安卓/ios)
- 【2020/05/29 开庭】韦东山:闲鱼与盗版更配,坚决打击盗版,起诉到底绝不和解!
- apache与tomcat动静分离
- z-buffer算法
- typecho插件编写教程7 - Helper类
- 基于微信小程序的学习记录与提醒应用设计与实现-计算机毕业设计源码+LW文档
- 随机码生成器[10位字母+数字]
- 大聪明教你学Java | throw 和 throws 的区别你知道吗
- 2、Docker安装
- 生成世界地图并在地图上画圆圈
- 构建基于词典的Lucene分类器
- 二叉树的叶子结点按从左到右的顺序连成一个单链表