随笔分类 - C++
摘要:c++中引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能。有点难理解,于是花时间整理一下自己的理解。 左值、右值 C++中所有的值都必然属于左值、右值二者之一。左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象。所有的具名变量或者对象都是左值,而右值不具名。
阅读全文
posted @ 2019-07-28 16:53
狂奔~
摘要:1.模板特化1.1概述模板特化(template specialization)不同于模板的实例化,模板参数在某种特定类型下的具体实现称为模板特化。模板特化有时也称之为模板的具体化, 分别有函数模板特化和类模板特化。 1.2函数模板特化函数模板特化指函数模板在模板参数为特定类型下的特定实现。查看以下
阅读全文
posted @ 2019-07-09 14:36
狂奔~
摘要:一、函数功能 SendMessage函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。 二、函数原型 SendMessage函数的原型为 LRESULT SendMess
阅读全文
posted @ 2019-07-05 17:05
狂奔~
摘要:其中va_list( VA_LIST 是在C语言中解决变参问题的一组宏):va_list表示可变参数列表类型,实际上就是一个char指针fmt。 然后是va_start:va_start用于获取函数参数列表中可变参数的首指针(获取函数可变参数列表) 1、输出参数args(类型为va_list): 用
阅读全文
posted @ 2019-07-04 16:27
狂奔~
摘要:一,配置vs 二,程序崩溃界面 三,map文件 如果仔细浏览 Rva+Base 这栏,你会发现第一个比崩溃地址大的地址0x00401080,所以在 这个地址之前的那个入口就是产生崩溃的函数 因此,发生崩溃的函数就是 ?Crash@@YAXXZ ,所有以问号开头的函数名称都是 C++ 修饰的名称 什么
阅读全文
posted @ 2019-06-27 14:24
狂奔~
摘要:sizeof 是操作符 strlen计算字符串的长度,以'\0'为字符串结束标志 sizeof是分配的数组实际所占的内存空间大小,不受里面存储内容 例如 char *str = "1111111abcd"; char str1[9] = {1}; sizeof(str) = 4; //是指指针所占的
阅读全文
posted @ 2019-06-26 15:18
狂奔~
摘要:https://www.cnblogs.com/xinxue/p/5471708.html 2 重写 (override) 在 1.2.2 中提到 override 关键字,可以避免派生类中忘记重写虚函数的错误 下面以重写虚函数时,容易犯的四个错误为例,详细阐述之 在派生类中,重写 (overrid
阅读全文
posted @ 2019-06-26 12:02
狂奔~
摘要:原文地址https://www.cnblogs.com/xiangtingshen/p/11063805.html reinterpret意为“重新解释” reinterpret_cast是C++中与C风格类型转换最接近的类型转换运算符。它让程序员能够将一种对象类型转换为另一种,不管它们是否相关。
阅读全文
posted @ 2019-06-21 14:26
狂奔~
摘要:https://blog.csdn.net/biyusr/article/details/79046355
阅读全文
摘要:原文https://www.cnblogs.com/lsgxeva/category/1107731.html
阅读全文
posted @ 2019-06-14 19:55
狂奔~
摘要:首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式). 那么显示声明的构造函数和隐式声明的有什么区别呢? 我们
阅读全文
posted @ 2019-06-14 19:23
狂奔~
摘要:C++11中,当类中含有不能默认初始化的成员变量时,可以禁止默认构造函数的生成, myClass()=delete;//表示删除默认构造函数 myClass()=default;//表示默认存在构造函数 当类中含有不能默认拷贝成员变量时,可以禁止默认构造函数的生成, myClass(const my
阅读全文
posted @ 2019-06-11 18:18
狂奔~
摘要:电脑系统中的英文字符串和中文字符最根本的区别就在于: 1、英文的 ASCII 码,其最高位为 0,占一个字节 注:英文的ASCII码范围是在0到127,二进制为(0000 0000 ~ 0111 1111) 2、中文的 ASCII 码,其最高位为 1。占两个字节, 注:两个字节的最高位都是1 因此可
阅读全文
posted @ 2019-06-08 08:08
狂奔~
摘要:虚函数表 对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配
阅读全文
posted @ 2019-06-05 22:19
狂奔~
摘要:转自:https://www.cnblogs.com/acSzz/p/5743789.html#top 一、程序编译链接的整体流程 二、目标文件的样子(以linux下的elf文件格式为例) 三、静态链接 四、装载 五、动态链接 一、程序编译链接的整体流程 通常我们使用gcc来生成可执行程序,命令为:
阅读全文
posted @ 2019-06-05 17:48
狂奔~
摘要:“__declspec”是Microsoft c++中专用的关键字,它配合着一些属性可以对标准C++进行扩充。这些属性有:align、allocate、deprecated、 dllexport、dllimport、 naked、noinline、noreturn、nothrow、novtable、
阅读全文
posted @ 2019-06-05 16:06
狂奔~
摘要:extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言(而不是C++)的方式进行编译。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重
阅读全文
posted @ 2019-06-05 15:50
狂奔~
摘要:动态链接是指在生成可执行文件时不将所有程序用到的函数链接到一个文件,因为有许多函数在操作系统带的dll文件中,当程序运行时直接从操作系统中找。 而静态链接就是把所有用到的函数全部链接到exe文件中。 动态链接是只建立一个引用的接口,而真正的代码和数据存放在另外的可执行模块中,在运行时再装入; 而静态
阅读全文
posted @ 2019-06-05 14:31
狂奔~

浙公网安备 33010602011771号