
C++编程杂谈
lyKOBE1103
这个作者很懒,什么都没留下…
展开
-
const用法全面回忆
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示:No.作用说明参考代码转载 2016-06-01 11:49:43 · 253 阅读 · 0 评论 -
前向声明
前向声明是一种,不完全类型声明,所以他并不能取代完全类型,对于编译器来说,在需要知其被声明对象大小和内容时,前向声明,己不可用。故其应用场景,仅限如下:1,声明引用和指针2,作函数(仅声明),的返回类型或是参数类型很简单但是需要注意啊原创 2016-08-25 15:17:07 · 401 阅读 · 0 评论 -
C++memcpy
http://blog.youkuaiyun.com/sszgg2006/article/details/7989404memmove、memcpy和memccpy三个函数都是内存的拷贝,从一个缓冲区拷贝到另一个缓冲区。memmove(void *dest,void*src,int count)memcpy(void *dest,void *src,int count)memccpy(vo转载 2016-07-08 12:02:27 · 965 阅读 · 0 评论 -
c++智能指针
智能指针:它的一种通用实现方法是采用引用计数的方法。智能指针将一个计数器与类指向的对象相关联,引用计数跟踪共有多少个类对象共享同一指针。 每次创建类的新对象时,初始化指针并将引用计数置为1; 当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数; 对一个对象进行赋值时,赋值操作符减少左操作数所指对象的引用计数(如果引用计数为减至0转载 2016-07-08 10:47:47 · 336 阅读 · 0 评论 -
c++动态链接
今天尝试写了一个简单的C++DLL,并且用另一个CPP调用它,啥都不说,先贴代码1.DLL(冒泡算法)extern "C"_declspec(dllexport) void maopao(int *p,int count);void maopao(int *p,int count){ int temp=0; for(int i=1;i {for(int j=count-1;转载 2016-07-15 17:08:28 · 388 阅读 · 0 评论 -
c++动态加载
VC里面实现动态对象载入已经不是什么新鲜事情了,很多的plug-in技术就是例子。Unix下,通过动态载入so获得一个对象也不是什么难事,不过对这个对象的管理就是一件比较麻烦的事情了。一般的需求如下: 有class TMyObj,准确说TMyObj应该是一个接口,根据不同具体情况会有不同的实现,例如 TMyObj1、TMyObj2等等……而这些TMyObj1和TMyObj2分别保存在不同的s转载 2016-07-15 15:25:49 · 878 阅读 · 0 评论 -
C++枚举
1、枚举enum的用途浅例 写程序时,我们常常需要为某个对象关联一组可选alternative属性.例如,学生的成绩分A,B,C,D等,天气分sunny, cloudy, rainy等等。 更常见的,打开一个文件可能有三种状态:input, output和append. 典型做法是,对应定义3个常数,即: const int input = 1;转载 2016-07-04 17:53:35 · 227 阅读 · 0 评论 -
C++类型转换
类型转换有c风格的,当然还有c++风格的。c风格的转换的格式很简单(TYPE)EXPRESSION,但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比如你可以把一个指向const对象的指针转换成指向非const对象的指针,把一个指向基类对象的指针转换成指向一个派生类对象的指针,这两种转换之间的差别是巨大的,但是传统的c语言风格的类型转换没有区分这些转载 2016-07-14 11:08:13 · 223 阅读 · 0 评论 -
c/c++static关键字
静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。 静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。用法1:函数内部声明的static变量,可作为对象间的一种通信机制 如果一局部变量被声明为static,那么将只有唯一的一个静态分配的对象,它被用于在该函数的所有调用中表示这个变量。这个对象将转载 2016-07-11 10:54:55 · 295 阅读 · 0 评论 -
C++拷贝构造
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plain copyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。转载 2016-06-28 21:05:34 · 300 阅读 · 0 评论 -
链接和库
包含目录:#include 中headerfile.h的搜索目录。如果有XXX.h找不到,设置这个目录可以解决。附加依赖项:C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。编译之后,*.cpp,*.cc,*.c会被打包成一个.lib文件,这样可以保护源代码。所以,要使用一个库,除了要include他的头文件以外,还要在链接过程中把lib加进去。这个就是在附加链转载 2016-06-04 16:39:12 · 258 阅读 · 0 评论 -
链接库(血泪史)
一、前言 自从微软推出16位的Windows操作系统起,此后每种版本的Windows操作系统都非常依赖于动态链接库(DLL)中的函数和数据,实际上Windows操作系统中几乎所有的内容都由DLL以一种或另外一种形式代表着,例如显示的字体和图标存储在GDI DLL中、显示Windows桌面和处理用户的输入所需要的代码被存储在一个User DLL中、Windows编程所需要的大量的API函转载 2016-06-02 14:57:37 · 274 阅读 · 0 评论 -
VS2013快捷键及技巧
VS2013快捷键很多,灵活使用常用快捷键及各项技巧可以让你事半功倍。下面的visual studio 2013快捷键和操作技巧你知道多少? 1.回到上一个光标位置/前进到下一个光标位置 1)回到上一个光标位置:使用组合键“Ctrl + -”; 2)前进到下一个光标位置:“Ctrl + Shift + - ”。 2.复制/剪切/删除整行代码 1)如果你想复制一整行代码转载 2016-06-07 15:54:38 · 612 阅读 · 0 评论 -
C++ vector容器类型及初始化方法
vector类为内置数组提供了一种替代表示,与string类一样 vector 类是随标准 C++引入的标准库的一部分 ,为了使用vector 我们必须包含相关的头文件 :#include 使用vector有两种不同的形式,即所谓的数组习惯和 STL习惯。一、数组习惯用法1. 定义一个已知长度的 vector :vector ivec( 10 ); //类似转载 2016-06-02 08:42:33 · 1018 阅读 · 0 评论 -
C++拷贝欧构造函数
C++拷贝构造函数(深拷贝,浅拷贝)对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include iostream>using namespace std;class CExample {转载 2016-06-01 16:44:57 · 221 阅读 · 0 评论 -
vs配置动态链接库全解析
创建新的动态链接库 (DLL) 项目1.从“文件”菜单中,选择“新建”,然后选择“项目…”。2.在“项目类型”窗格中,选择“Visual C++”下的“Win32”。3.在“模板”窗格中,选择“Win32 控制台应用程序”。4.为项目选择一个名称,如 MathFuncsDll,并将其键入“名称”字段。 为解决方案选择一个名称,如 DynamicLibrary,并将其键入转载 2016-06-01 14:51:53 · 2803 阅读 · 1 评论 -
c++11Lambda
lambda表达式是C++11最重要也最常用的一个特性之一。lambda来源于函数式编程的概念,也是现代编程语言的一个特点。 一.函数式编程简介定义:简单说,“函数式编程”是一种“编程范式”。它属于“结构化编程”的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用。 特点:1).函数是“第一等公民”,可以赋值给他其他变量,也可以做为参数,返回值。转载 2017-10-12 17:40:48 · 200 阅读 · 0 评论