C++特性nullptr
nullptr:C++不允许直接将void*隐式转换到其他类型,没有隐式转换的C++只好
将NULL定义为0,但会出现新的问题,C++中的重载特性会发生混乱
为了区分NULL、0从而引入的关键字,nullptr的类型为nullptr_t
能够隐式的转换为任何指针或成员指针类型,也能进行相等或不相等进行比较;
#include <iostream>void test1()
{char *ptr = NULL;// NULL 不等于0if (std::is_same<decltype(NULL), decltype(0)>::value){std::cout<<"NULL == 0"<<std::endl;}// NULL不等于(void*)0if (std::is_same<decltype(NULL), decltype((void*)0)>::value){std::cout<<"NULL == (void*)0"<<std::endl;}// NULL不等于nullptrif (std::is_same<decltype(NULL), decltype(nullptr)>::value){std::cout<<"NULL == nullptr"<<std::endl;}}void fool(char *ptr)
{std::cout<<"char* ptr"<<std::endl;
}void fool(int i)
{std::cout<<"int i"<<std::endl;
}
void test2()
{// fool(NULL);//报错,C++没有隐式类型转换,将NULL定义为0,但是重载函数都符合fool(0);// 调用fool(int i);fool(nullptr);// 调用 fool(char *ptr);
}
int main()
{test1();test2();return 0;
}
C++特性nullptr相关推荐
- C++ 11 新特性 nullptr 学习
nullptr 出现的目的是为了替代 NULL. 在某种意义上来说,传统 C++ 会把 NULL.0 视为同一种东西,这取决于编译器如何定义 NULL,有些编译器会将 NULL 定义为 ((void* ...
- 大厂面试八股文——C++
文章目录 可变参数-printf的实现原理 编译语言和解释语言 C++空指针调用成员函数 std::move 移动语义 std::move的实现 完美转换 malloc函数底层实现 被free回收的内 ...
- 计网/数据库面试题(更新中ing~~)
计网/数据库面试题(更新中ing~~) <计算机网络> 1. OSI七层模型.设备 (传输层)协议的多路分用和复用 2. TCP/IP四层模型==五层模型 (传输层)TCP和UDP协议对比 ...
- LES06 :C++线程与智能指针
C++线程与智能指针 文章目录 C++线程与智能指针 线程 C++11线程 POSIX线程 线程属性 分离线程 调度策略与优先级 线程同步 条件变量 智能指针 shared_ptr weak_ptr ...
- 基础巩固|C++面试八股文
写在前面:本文主要是自己用来巩固C++基础用的,内容源自我的一位同学rzj的八股总结.内容很多,后面会加上目录之类的,方便查找,如果有错误,欢迎及时在评论区或私信指出. 1. 1. 1. 简述下C++ ...
- C++新特性探究(一):nullptr
nullptr 出现的目的是为了替代 NULL.在某种意义上来说,传统 C++ 会把 NULL.0 视为同一种东西,这取决于编译器如何定义 NULL,有些编译器会将 NULL 定义为 ((void ...
- 【C++】C++11 新特性(auto,decltype,nullptr,快速遍历,【Lambda表达式详解】)
C++11 重要新特性 auto decltype nullptr 快速遍历与数组初始化 Lambda 表达式 Lambda 应用 外部变量捕获 mutable auto 可以从初始化表达式中推断出变 ...
- Effective Modern C++ 第三章第一节,C++新特性:初始化、nullptr、alias别名、enum
Chapter 3 part 1, Moving to Modern C++ Item 7: Distinguish between () and {} when creating objects 几 ...
- C++11新特性之nullptr
在C++11之前的C++98/03我们使用空都是NULL关键字,后来C++11之后新增了nullptr关键字来表示空.那么有了NULL还要弄个nullptr出来干什么呢?是不是吃太饱了? 为了来剖析这 ...
最新文章
- 【swjtu】数据结构实验8_平衡二叉排序树
- matlab高斯滤波跟中值滤波区别,matlab图像滤波处理代码讲解 均值滤波 中值滤波 高斯滤波...
- python模块之email: 电子邮件编码解码 (一、解码邮件)
- 180°舵机的使用步骤
- OpenGL进阶演示样例1——动态画线(虚线、实线、颜色、速度等)
- Php连接及读取和写入mysql数据库的常用代码
- pytorch 实现MLP(多层感知机)
- HTML5 中定位问题
- 工具类与工具函数 —— fatal.h
- Linux学习记录--ACL权限控制
- linux里命令pkg-config工具的使用
- for循环与foreach的性能比较
- 《IS-IS网络设计解决方案》一导读
- 3月28日 simulink学习(一)
- 爬取《全职高手之巅峰荣耀》的豆瓣影评,分析漫改电影的优劣好坏
- 深度学习中需要的矩阵计算
- 上海市建筑标准规范合集
- TCMalloc 安装和使用
- Find命令搭配atime/ctime/mtime时的日期写法
- iOS导航栏颜色,任务栏颜色