上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 27 下一页
摘要: override 关键字 作用:在成员函数声明或定义中, override 确保该函数为虚函数并覆写来自基类的虚函数。 位置:函数调用运算符之后,函数体或纯虚函数标识 “= 0” 之前。 使用以后有以下好处: 1.可以当注释用,方便阅读 2.告诉阅读你代码的人,这是方法的复写 3.编译器可以给你验证 阅读全文
posted @ 2023-05-02 21:49 imxiangzi 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 本文介绍了C++ override关键字使用详解以及与重载的区别。 C++ override关键字使用详解一、override作用二、override在基类与派生类的应用2.1. 纯虚函数2.2. 普通虚函数2.3.Override重写三、Override实例四、C++中重载(overload)与覆 阅读全文
posted @ 2023-05-02 21:49 imxiangzi 阅读(2162) 评论(0) 推荐(0) 编辑
摘要: C++11 标准为 C++ 引入右值引用语法的同时,还解决了一个 C++ 98/03 标准长期存在的短板,即使用简单的方式即可在函数模板中实现参数的完美转发。那么,什么是完美转发?它为什么是 C++98/03 标准存在的一个短板?C++11 标准又是如何为 C++ 弥补这一短板的?别急,本节将就这些 阅读全文
posted @ 2023-04-30 17:31 imxiangzi 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 目录 1、不完美转发 2、完美转发 2.1、引用折叠 2.2、std::forward 1、不完美转发所谓完美转发,是指在函数模板中,完全按照模板的参数的类型,将参数传递给函数模板中调用的另一个函数。比如: template <typename T>void IamForwording(T t){ 阅读全文
posted @ 2023-04-30 17:14 imxiangzi 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 不管是T&&、左值引用、右值引用,std::forward都会按照原来的类型完美转发。 forward主要解决引用函数参数为右值时,传进来之后有了变量名就变成了左值。 #include <QCoreApplication> #include <memory> #include <iostream> 阅读全文
posted @ 2023-04-30 11:45 imxiangzi 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 首先先描述一下C++中各种类型的值(以下无特殊说明“类型”皆按如下分法)lvalue(left value)左值:有标识符,且不能被回收rvalue(right value)右值:有无标识符皆可,可以被回收glvalue(generalized left value)泛左值:有标识符,可不可被回收皆 阅读全文
posted @ 2023-04-30 10:21 imxiangzi 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 环境:mac os + xcode 一、背景 作为c++程序员,相信我们都写过如下代码: void fun(int &x){} int main(int argc, const char * argv[]) { // insert code here... fun(10); return 0; } 阅读全文
posted @ 2023-04-27 16:26 imxiangzi 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 目录 一、引用折叠 二、示例解析 三、参考: 一、引用折叠 由于存在T&&这种万能引用类型,当它作为参数时,有可能被一个左值引用或右值引用的参数初始化,这是经过类型推导的T&&类型,相比右值引用(&&)会发生类型的变化,这种变化就称为引用折叠。 1.所有右值引用折叠到右值引用上仍然是一个右值引用。( 阅读全文
posted @ 2023-04-27 16:15 imxiangzi 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 理解引用折叠 以下面这个模板为例 template<typename T> void func(T&& param); 1 2 模板形参T的推导类型中,会把传给param的实参是左值还是右值的信息给编码进去。 编码机制是直截了当的:如果传递的实参是个左值,T的推导结果就是个左值引用类型;如果传递的实 阅读全文
posted @ 2023-04-27 16:14 imxiangzi 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 左值和右值左值:指表达式结束后依然存在的持久对象,可以取地址,具名变量或对象右值:表达式结束后就不再存在的临时对象,不可以取地址,没有名字。比如 int a = b + c;,a 就是一个左值,可以对a取地址,而b+c 就是一个右值,对表达式b+c 取地址会报错。C++11中右值又由两个概念组成:将 阅读全文
posted @ 2023-04-27 16:11 imxiangzi 阅读(137) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 27 下一页