上一页 1 2 3 4 5 6 7 ··· 11 下一页
摘要: 常量折叠 常量折叠:在编译器里进行语法分析的时候,将常量表达式计算求值,并用求得的值来替换表达式,放入常量表,可以算作一种编译优化,但是变量的名称是有效范围内还是可用的,并且在编译的时候从常量表中的直接替换,并不涉及到该变量的内存地址。 可折叠的常量像宏一样,在预编译阶段对常量的引用一律被替换为常量 阅读全文
posted @ 2021-09-01 19:57 默行于世 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 1) 在C++11中所有的值必属于左值、右值两者之一,右值又可以细分为纯右值、将亡值。在C++11中可以取地址的、有名字的就是左值,反之,不能取地址的、没有名字的就是右值(将亡值或纯右值)。 左值: 能够用&取地址的表达式是左值表达式。 例如:函数名和变量名(实际上是函数指针和具名变量,具名变量如s 阅读全文
posted @ 2021-09-01 19:23 默行于世 阅读(308) 评论(0) 推荐(0) 编辑
摘要: C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能,如C#,Python,Objective-C 阅读全文
posted @ 2021-09-01 18:58 默行于世 阅读(54) 评论(0) 推荐(0) 编辑
摘要: C++ 11 标准中,除了可以沿用前面介绍的用法外,还为 for 循环添加了一种全新的语法格式,如下所示: for (declaration : expression){ //可迭代序列中的每个元素值会按序赋值给declaration中的变量,并存在拷贝或是引用的问题 } 其中,两个参数各自的含义如 阅读全文
posted @ 2021-09-01 18:28 默行于世 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 众所周知,C语言使用NULL常量来表示空指针,为什么C++11还要增加新的nullptr来表示空指针呢? 1.我们首先查看NULL的定义: #if defined (_STDDEF_H) || defined (__need_NULL) #undef NULL /* in case <stdio.h 阅读全文
posted @ 2021-09-01 18:23 默行于世 阅读(41) 评论(0) 推荐(0) 编辑
摘要: auto C++11 赋予 auto 关键字新的含义,使用它来做自动类型推导。也就是说,使用了 auto 关键字以后,编译器会在编译期间自动推导出变量的类型。 注意:auto 仅仅是一个占位符,在编译器期间它会被真正的类型所替代。或者说,C++ 中的变量必须是有明确类型的,只是这个类型是由编译器自己 阅读全文
posted @ 2021-09-01 18:06 默行于世 阅读(1104) 评论(0) 推荐(0) 编辑
摘要: 1) 前置返回一个引用,后置返回一个对象 // ++i实现代码为: int& operator++(){ *this += 1; return *this; } 2) 前置不会产生临时对象,后置必须产生临时对象,临时对象会导致效率降低 //i++实现代码为: int operator++(int) 阅读全文
posted @ 2021-09-01 16:24 默行于世 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 1) C++中的异常情况 语法错误(编译错误):比如变量未定义、括号不匹配、关键字拼写错误等等编译器在编译时能发现的错误,这类错误可以及时被编译器发现,而且可以及时知道出错的位置及原因,方便改正。 运行时错误:比如数组下标越界、系统内存不足等等。这类错误不易被程序员发现,它能通过编译且能进入运行,但 阅读全文
posted @ 2021-09-01 16:18 默行于世 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 前言 0. 所谓泛型编程就是独立于任何特定类型的方式编写代码,使用泛型程序时,需要提供具体程序实例所操作的类型或者值。我们经常用到STL容器、迭代器、和算法都是泛型编程的例子; 模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数 阅读全文
posted @ 2021-09-01 16:15 默行于世 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 重载(overload) 重载的定义为:在同一作用域中,同名函数的形式参数(参数个数、类型或者顺序)不同时,构成函数重载。例如: class A{ public: int func(int a); void func(int a, int b); void func(int a, int b, in 阅读全文
posted @ 2021-09-01 15:46 默行于世 阅读(866) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 11 下一页