
C++
文章平均质量分 83
lengbingteng
这个作者很懒,什么都没留下…
展开
-
C++继承和抽象
1.virtual 关键字:这个关键字描述的函数,都是虚函数。对于这个关键字描述过的函数,会被延时绑定,这样在使用的时候会找到真正的那个方法。#include <iostream.h> class Animal { public: Animal(int height, int weight) {} ~Animal() ...原创 2013-03-02 16:36:52 · 170 阅读 · 0 评论 -
C++11标准之右值引用(ravalue reference)
原文地址:http://www.cnblogs.com/soaliap/archive/2012/11/19/2777131.html 1、右值引用引入的背景临时对象的产生和拷贝所带来的效率折损,一直是C++所为人诟病的问题。但是C++标准允许编译器对于临时对象的产生具有完全的自由度,从而发展出了Copy Elision、RVO(包括NRVO)等编译器优化技术,它们可以防止某些情况下...原创 2013-09-19 10:40:26 · 132 阅读 · 0 评论 -
dll 详解
库:重用一直是编程的一个重要的课题,它与语言无关,而从重用的粒度来说,变量,函数,类都属于小颗粒的。重用这些,最多可以共用一些小的能力,对于大的项目来说这样是不够的。如是出现了工程级别的重用,java的插件工程和C++的dll都属于这个范畴。把项目进行工程级别的划分,不仅仅起到重用的作用,而且能够让整个项目的结构更加清晰,对于维护来说是一件好事。C++有两种库,静态lib库和动态dll...原创 2013-07-14 17:42:07 · 271 阅读 · 0 评论 -
ofstream和ifstream详细用法
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器(<<) 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<...原创 2013-01-31 14:56:24 · 94 阅读 · 0 评论 -
STL :map
std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下std map内部数据的组织,std map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在std map内部所...原创 2013-01-09 21:40:19 · 93 阅读 · 0 评论 -
STL :vector,deque,list
vector(向量)数据结构:一个可变长空间的数组,内存中连续存放。优点:遍历效率高,数据插入尾部效率也高。缺点:数据插入或删除时,如果操作的位置不在末尾效率比较底。在同等容器中优先使用它。 使用原则:1,尽量使用vector代替C风格的数组或者CArray;2,尽量使用算法代替手工写的循环;3,尽量使用vector本身的函数代替其他泛型算法;4,尽量使用rese...原创 2013-01-09 16:45:46 · 132 阅读 · 0 评论 -
对象序列化 Boost
class Empty{public:Empty(); // 缺省构造函数Empty( const Empty& ); // 拷贝构造函数~Empty(); // 析构函数Empty& operator=( const Empty& ); // 赋值运算符Empty* operator&(); // 取址运算符const...原创 2013-06-27 12:03:54 · 106 阅读 · 0 评论 -
Dynamic_cast 和 RTTI
include <iostream> #include <list> #include "boost/shared_ptr.hpp" using namespace std; using namespace boost; //观察者基类 class Observer { public: //处理...原创 2013-06-27 11:02:44 · 137 阅读 · 0 评论 -
内存分配和管理
内存分配方式:1、栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) : 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。用new/malloc时开辟,delete/free时释放。生存期由用户指定,灵活。但有内存泄露等问题。...原创 2012-12-14 00:13:52 · 112 阅读 · 0 评论 -
头文件的预编译
来源于:http://blog.youkuaiyun.com/btooth/article/details/980251 许多初学 VC 的朋友也许都为那么一个问题困扰过: 为什么所有的 cpp 都必须 #include "stdafx.h" 也许请教了别的高手之后,他们会告诉你,这是预编译头,必须包含。可是,这到底是为什么呢?预编译头有什么用呢? 这得从头文件的编译原理讲起。...原创 2012-12-14 00:13:37 · 277 阅读 · 0 评论 -
char与wchar_t的转换
来源于:http://www.cppblog.com/lf426/ wchar_t是C/C++的字符数据类型,是一种扩展的字符存储方式,wchar_t类型主要用在国际化程序的实现中,但它不等同于unicode编码。unicode编码的字符一般以wchar_t类型存储。char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。 ...原创 2012-12-13 03:52:23 · 701 阅读 · 0 评论 -
C++单例模式
单例模式#include <iostream> using namespace std; //单例类的C++实现 class Singleton { private: Singleton();//注意:构造方法私有 ...原创 2013-03-02 21:46:10 · 86 阅读 · 0 评论 -
C++函数参数传递和指针
参数传递:1.值传递:在这种情况下传给形参的是变量的值,而不是变量的地址,值是通过拷贝的方式传递给函数的形参的,这样值就到了一个新的内存里面。对其作出的任何改变都不会对原有值产生任何影响。int main(){ void swap(int,int);//参数为整型变量 int i=3,j=4; cout<<"i="<<...原创 2013-03-02 21:03:14 · 172 阅读 · 0 评论 -
C++11新特性:Lambda函数(匿名函数)
/******* 服务器程序 (server.c) ************/#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <string.h>#include <unistd.h>#include <netdb.h>...原创 2013-09-19 17:01:28 · 128 阅读 · 0 评论