随笔分类 - C++ Learnxx
摘要:1.帮助定义复杂的宏以避免错误 举例来说,假设你需要定义这样一个宏: #define DOSOMETHING() foo1(); foo2(); 这个宏的本意是,当调用DOSOMETHING()时,函数foo1()和foo2()都会被调用。但是如果你在调用的时候这么写: if(a>0) DOSOME
阅读全文
摘要:如何正确理解enum类型? 例如: [cpp] view plain copy enum Color { red, white, blue}; Color x; 我们应说x是Color类型的,而不应将x理解成enumeration类型,更不应将其理解成int类型。 我们再看enumeration类型
阅读全文
摘要:test.h [cpp] view plain copy #ifndef TEST_H_ #define TEST_H //常量声明和定义采取这种方法即可 const int a = 20; //不报错,因为const变量链接属性默认是内部链接,就算两个cpp文件都引用了该.h文件,也不会出现重复定
阅读全文
摘要:引用百度上对闭包的定义:闭包是指可以包含自由(未绑定到特定对象)变量的代码块;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。“闭包” 一词来源于以下两者的结合:要执行的代码块(由于自由变量被包含在代码块中,这些自由变量以及它们引用的对象没有被释放)和
阅读全文
摘要:创建一个匿名函数并执行。Objective-C采用的是上尖号^,而C++ 11采用的是配对的方括号[]。实例如下: 1 2 3 4 5 6 7 8 9 #include <iostream> using namespace std; int main() { []{ cout << "Hello,W
阅读全文
摘要:首先在这里感谢QT爱好者社区里大神们的无私分享!我个人也买了书籍,但是刚开始看书有点难以进入状态,看了社区的教程,瞬间感觉入门了有木有! 这次谈一谈我对C++类的前置声明的理解吧。 转自(http://qimo601.iteye.com/blog/1406992)刚开始学习c++的人都会遇到这样的问
阅读全文
摘要:什么是 C++17? C++17(或 C++1z)是继 C++14 之后 C++ 编程语言 ISO/IEC 标准的下一次修订的非正式名称。C++17 现在功能已齐全,正在成为国际标准的路上。它的规范已于 2017 年 3 月达到国际标准草案的阶段。 C++17 标准化图表 C++17 的 19 个新
阅读全文
摘要:(感谢投稿人 @思禽饮霜 ) 这里主要讨论的是C语言的扩展特性block。该特性是Apple为C、C++、Objective-C增加的扩展,让这些语言可以用类Lambda表达式的语法来创建闭包。前段时间,在对CoreData存取进行封装时(让开发人员可以更简洁快速地写相关代码),我对block机制有
阅读全文
摘要:C++11引入了lambda表达式,使得程序员可以定义匿名函数,该函数是一次性执行的,既方便了编程,又能防止别人的访问。 Lambda表达式的语法通过下图来介绍: 这里假设我们定义了一个如上图的lambda表达式。现在来介绍途中标有编号的各个部分是什么意思。 将上图的代码片段补充完整: int x
阅读全文
摘要:预处理器发现 #include 指令后,就会寻找后跟的文件名并把这个文件的内容包含到当前文件中。被包含文件中的文本将替换源代码文件中的#include指令,就像你把被包含文件中的全部内容键入到源文件中的这个位置一样。 #include 指令有两种使用形式 #include <stdio.h> 文件名
阅读全文
摘要:指针是 C 与其他语言区别的重要特征之一,在 C++ 中,指针也被广泛运用,我们通过指针实现多态。然而,众所周知,指针的使用必须小心,否则很容易造成内存泄漏 Memory Leak。当我们有几个指针指向同一个对象时有其应该注意,关于何时释放这个对象:(1) 如果释放的太早,那么其它的指针仍然指向这片
阅读全文
摘要:先说基本区别。 (1) getch()和getche()函数 这两个函数都是从键盘上读入一个字符。其调用格式为: getch(); getche(); 两者的区别是: getch()函数不将读入的字符回显在显示屏幕上, 而getche() 函数却将读入的字符回显到显示屏幕上。 例1: #includ
阅读全文
摘要:复制代码模拟鼠标各种按键 左键 翻开右键 标雷左右键 翻开周围 先判断当前点是否为已翻开的点 时间地雷计数器清屏 展开 大于8时不管 小于等于8时翻开本身 为0时翻开周围的输出 同雷数图雷区判断 判断游戏结束 剩下的是否和雷数相等 *标记出所有的雷 踩到雷了动态数组 第一次操作时才开始布雷布雷后制作
阅读全文
摘要:内容目录: 自动类型推导 auto 萃取类型 decltype 返回类型后置语法 Trailing return type 空指针标识 nullptr 区间迭代 range-based for loop 去除右尖括号的蹩脚语法 right angle brackets lambda表达式的引入 原生
阅读全文
Qt 中C++ static_cast 和 reinterpret_cast的区别(static_cast是隐式类型转换,会有数据损失,reinterpret_cast是底层二进制转换,没有数据损失)
摘要:1、C++中的static_cast执行非多态的转换,用于代替C中通常的转换操作。因此,被做为隐式类型转换使用。比如: int i; float f = 166.7f; i = static_cast<int>(f); 此时结果,i的值为166。 2、C++中的reinterpret_cast主要是
阅读全文
摘要:什么是操作符重载? 一看到重载,很容易就让人联想到成员函数重载,函数重载可以使名称相同的函数具有不同的实际功能,只要赋给这些同名函数不同的参数就可以了,操作符重载也是基于这一机制的。系统为我们提供了许多操作符,比如“+”,“[ ]”等,这些操作符都有一些默认的功能,而操作符重载机制允许我们给这些操作
阅读全文
摘要:1、流的控制 iomanip 在使用格式化I/O时应包含此头文件。 stdiostream 用于混合使用C和C + +的I/O机制时,例如想将C程序转变为C++程序 2、类继承关系 ios是抽象基类,由它派生出istream类和ostream类, iostream类支持输入输出操作,iostream
阅读全文
摘要:在main函数之前跑代码的方法 方法: 手工找到程序入口点, 替换为我们自己的函数 [cpp] view plain copy 写测试程序 // test.cpp : Defines the entry point for the console application. // #include "
阅读全文
摘要:[cpp] view plain copy // test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <windows.h> #include <crtdbg.
阅读全文
摘要:转载地址:http://soft.chinabyte.com/database/460/11433960.shtmlofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要...
阅读全文