随笔分类 -  C++

1 2 下一页

C的内存泄漏检测
摘要:一,Windows平台下的内存泄漏检测检测是否存在内存泄漏问题Windows平台下面Visual Studio 调试器和 C 运行时 (CRT) 库为我们提供了检测和识别内存泄漏的有效方法,原理大致如下:内存分配要通过CRT在运行时实现,只要在分配内存和释放内存时分别做好记录,程序结束时对比分配内存... 阅读全文

posted @ 2015-12-13 13:32 joannae 阅读(561) 评论(0) 推荐(0)

Lambda表达式
摘要:Lambda表达式其实就是个匿名函数,这种函数在程序中只使用一次,所以也就不用去特地定义和命名。Lambda的语法形式如下:[函数对象参数] (操作符重载函数参数) mutable或exception声明 ->返回值类型 {函数体}[函数对象参数]空。没有使用任何函数对象参数。=。按值传递了所有函数... 阅读全文

posted @ 2015-12-10 14:54 joannae 阅读(336) 评论(0) 推荐(0)

对象池 object pool
摘要:对象池适用于:对象的创建很耗时对象频繁地释放再创建对象池的实现:将释放的对象放进对象池中,在新建对象时,从对象池取对象public class ObjectPool where T : class, new(){ private Stack m_objectStack = new Stack(... 阅读全文

posted @ 2015-12-03 09:51 joannae 阅读(360) 评论(0) 推荐(0)

字符串匹配——C++使用Regex
摘要:需要#include匹配regex_match ("subject", std::regex("(sub)(.*)")//结果返回true主要regex_match需要匹配源字符串的每个字符,这点与regex_search不同查找返回一个匹配项 const regex pattern("(\\... 阅读全文

posted @ 2015-10-01 10:59 joannae 阅读(5994) 评论(0) 推荐(0)

C++ STL(Standard Template Library)
摘要:为什么要使用STL 数据结构的分离(如vector)和算法的分离(如,STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组)。 STL其实是一种泛型编程(Generic Programming,简写GP)是一种基于参数化(parameterization)的编 阅读全文

posted @ 2015-09-22 06:46 joannae 阅读(314) 评论(0) 推荐(0)

C++:初始化列表
摘要:有两种原因需要使用初始化列表: 让我们先看一下第一个原因——必要性。(1)对另一个类成员的初始化,(2)成员是一个常量对象,(3)成员是引用。根本原因:编译器总是确保所有成员对象在构造函数体执行之前(初始化列表之后)被初始化。 变量的初始化顺序就应该是: 1 基类的静态变量或全局变量 2 派生类的静 阅读全文

posted @ 2015-09-22 06:42 joannae 阅读(206) 评论(0) 推荐(0)

虚函数原理
摘要:虚函数表的数量与位置:编译器会为每个有虚函数的类创建一个虚函数表,该虚函数表将被该类的所有对象共享。编译器将虚函数表存放在了目标文件或者可执行文件的常量段,即代码区。 虚函数表指针(vptr)的数量与位置:如果1个类中存在一个虚函数,那么第一个地址永远都是指向虚函数列表的指针。子类没有vptr,子类 阅读全文

posted @ 2015-09-22 06:40 joannae 阅读(307) 评论(0) 推荐(0)

placement new
摘要:placement new就是把原本new做的两步工作分开来。第一步你自己分配内存,第二步你调用类的构造函数在自己分配的内存上构建新的对象。class Foo{ float f;public: void set_f( float _f ) { f = _f; } void get... 阅读全文

posted @ 2015-09-22 06:29 joannae 阅读(184) 评论(0) 推荐(0)

overloading与overriding的区别
摘要:overloading: “重载”,参数和返回值可改变。overriding: “覆盖”,重写父类的虚函数,参数和返回值必须与父类相同。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。 阅读全文

posted @ 2015-09-22 06:25 joannae 阅读(732) 评论(0) 推荐(0)

C++ 基类指针,子类指针,多态
摘要:基类指针和子类指针之间相互赋值(1)将子类指针赋值给基类指针时,不需要进行强制类型转换,C++编译器将自动进行类型转换。因为子类对象也是一个基类对象。(2)将基类指针赋值给子类指针时,需要进行强制类型转换,C++编译器将不自动进行类型转换。因为基类对象不是一个子类对象。子类对象的自增部分是基类不具有... 阅读全文

posted @ 2015-09-22 06:24 joannae 阅读(4491) 评论(0) 推荐(0)

Visual Studio C++ include与library
摘要:首先介绍几种目录:1.系统路径系统路径在vc中是"Properties->Configuration Properties -> VC++ Directories"中"Include Directories"指定的路径。我们可以在这自行这里添加,可以添加在"Include Directories"中... 阅读全文

posted @ 2015-09-20 16:25 joannae 阅读(1068) 评论(0) 推荐(0)

C++中的浅拷贝、深拷贝、智能指针
摘要:浅拷贝(shallow copy)与深拷贝(deep copy)对于值拷贝的处理相同,都是创建新对象,但对于引用拷贝的处理不同,深拷贝将会重新创建新对象,返回新对象的引用字。浅拷贝不会创建新引用类型。 怎么判断一个类的赋值构造函数的方法:根据类的实现 1。如果它有一个用原生指针指针实现的对象引用,或 阅读全文

posted @ 2015-07-04 15:17 joannae 阅读(6442) 评论(0) 推荐(0)

C++ 静态数据成员和静态成员函数
摘要:一 静态数据成员: 1.静态数据成员的定义。 静态数据成员实际上是类域中的全局变量。所以,静态数据成员的定义(初始化)不应该被放在头文件中,因为这样做会引起重复定义这样的错误。即使加上#ifndef #define #endif或者#pragma once也不行。 其定义方式与全局变量相同。举例如下 阅读全文

posted @ 2015-07-04 11:24 joannae 阅读(8209) 评论(0) 推荐(0)

C & C++ 宏与const
摘要:1、宏定义函数:例:#define do{exp} while(0)与#define exp有什么不同,好处在哪里?定义复杂代码,防止分号,或是括号不匹配等错误。比如:定义:#define switch(x,y) {int tmp; tmp="x";x=y;y=tmp;}使用时: if(x>y)sw... 阅读全文

posted @ 2015-07-04 11:01 joannae 阅读(273) 评论(0) 推荐(0)

C++指针与引用
摘要:1、指针与引用的区别:(1)非空区别。引用不能指向空值。(2)合法性区别。由于指针可能为空,所以需要测试它以防止它为空。(3)可修改区别。引用初始化后不可再被修改。(4)内容区别。指针的内容是内存地址,引用只是某块内存的别名。所以指针的大小永远为4,而引用的大小和原变量相同(char为1,int为4... 阅读全文

posted @ 2015-07-04 10:43 joannae 阅读(145) 评论(0) 推荐(0)

C++ sizeof
摘要:1、字符串的sizeof与strlen:如果是指针形式,如char* ss="0123456789"则sizeof(ss)结果为4,指针占4字节(int,long, float类型也都占四字节)。但是注意sizeof(*ss)结果为1,因为*ss表示第一个字符(char占一个字节)。如果是数组形式,... 阅读全文

posted @ 2015-07-04 10:17 joannae 阅读(212) 评论(0) 推荐(0)

C++继承
摘要:首先,子类只能继承父类的public和protected成员。公有继承:基类的公有成员和保护成员作为派生类的公有成员和保护成员。私有继承:基类的公有成员和保护成员都作为派生类的私有成员。保护继承:基类的公有成员和保护成员都作为派生类的保护成员。*在子类中,父类的私有成员可以通过父类的public函数... 阅读全文

posted @ 2015-07-04 10:10 joannae 阅读(145) 评论(0) 推荐(0)

二维数组的声明与使用
摘要:[java]声明:type [][] = new type[][];声明同时赋值:int ssa[][]={{20,25,26,22},{23,24,20,28}};[C++]静态声明:int array1[3][2]={4,2,5,6};//顺序初始化(按内存顺序存取,即先第一行,在第二行。。。)... 阅读全文

posted @ 2015-06-29 15:50 joannae 阅读(2030) 评论(0) 推荐(0)

各种编程语言概述
摘要:PHP是Hypertext Pre-Processor(超文本预处理器)的缩写,它是一种服务器端的HTML脚本/编程语言。PHP语法上与C相似,可运行在Apache, Netscape/iPlanet, 和 Microsoft IIS Web 服务器上。 PHP与Java的区别: PHP具有和JAV 阅读全文

posted @ 2015-06-29 15:47 joannae 阅读(501) 评论(0) 推荐(0)

C++强制转换
摘要:static_cast,dynamic_cast, const_cast, reinterpret_castdynamic_cast比static_cast多了安全检测,判断源和目标有无继承被继承关系,所以强制将父类指针赋给子类指针的时候只能用static_cast。如class D:public ... 阅读全文

posted @ 2014-12-24 06:18 joannae 阅读(142) 评论(0) 推荐(0)

1 2 下一页

导航