自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 C++ 类成员指针

类成员指针1.成员指针式可以指向类的非静态成员的指针。类的静态成员不属于任何对象,因此无需特殊的指向静态成员的指针。指向静态成员的指针的普通指针没有任何区别。2.当初始化一个类成员指针时,我们令其指向类的成员,但不指定代成员所属的对象,直到使用到成员指针时,才提供所属的对象。  3.数据成员指针例:class screen{public:typedef std::str

2014-11-14 10:52:12 327

原创 可调用对象

可调用对象我们可以向算法传递任何类别的可调用对象:函数,函数指针,重载了函数调用运算符的类,lambda表达式,bind函数。函数对象:(1)如果类重载了函数调用运算符,则我们可以像使用函数一样使用该类的对象。因为这样的类同时也能存储状态,所以与普通函数相比他们更加灵活。例: struct absInt{int operator() (int) const{return v

2014-11-13 10:06:29 312

原创 第六章 继承与面向对象设计

虚函数意味着接口必须被继承,非虚函数意味着“接口和实现都必须被继承”。条款32:确定你的public继承塑模除is-a关系如果令class D以public形式继承class B,你便是告诉编译器,每个类型D对象同时也是一个类型B对象,反之则不成立。这个意思表明B比D表现的更一般化的概念,D比B表现的更特殊化的概念。public主张,能够施行于基类对象的每一件事,也可以施行于派生类上,如果

2014-11-12 13:04:49 282

原创 类型别名+auto类型说明符+decltype类型说明符

1.类型说明符typedef typedef double wages;typedef wages base; *p;//p是double*的同义词;using using SI=Sales_item;//SI是Sales_item的同义词理解下面的类型别名:typedef char *Pstring;const Pstring cstr=0;//cstr是指向ch

2014-11-11 14:48:37 508

原创 C++ 函数指针

函数指针(1)函数指针指的是函数而非对象。(2)要想声明一个指向函数的指针,只要用指针替换函数名即可:bool lengthcompare(const string&,const string&);bool (*pf)(const string&,const string&);(此处声明了一个函数指针)下面为函数指针赋值:有以下两种等价方法pf=lengthcompare;

2014-11-11 13:21:38 279

原创 第五章 实现

条款26:尽可能延后变量的定义式出现的时间什么是“尽量延后”的真正定义?我们不只应该延后变量的定义,直到非得使用该变量的前一刻为止,甚至应该尝试延后这份定义直到能够给他初值实参为止。如果这样,不仅能够避免构造和析构非必要的对象,还可以避免无意义的default构造行为。更深层说,以“具有明显意义的初值”将变量初值化,还可以附带说明变量的目的。  条款27:尽量少做转型动作旧事转

2014-11-08 23:33:46 350

原创 第四章 设计与声明

条款18:让接口容易被正确使用,不易被误用(1)“促进正确使用”的办法包括建立接口的一致性,以及与内置类型的行为兼容。(2)“阻止误用”的办法包括建立型类型,限制类型上的操作,束缚对象的值,以及消除客户的资源管理责任;(3)智能指针的定制删除器。  条款19:设计class犹如设计type每个class都需要面对的问题(1)新type的对象应该如何创建和销毁?(

2014-11-08 11:51:11 234

原创 第三章 资源管理

所谓资源,就是一旦使用它,将来必须还给系统。 条款13:以对象管理资源在一般函数中释放资源以一定的弊端,如函数为执行或函数发生异常。以对象管理资源最常用的方法就是只能指针。  条款14:在资源管理类中小心copying行为对于以个资源管理类,当复制对象时,资源管理类的动作可能是以下几种;(1)禁止复制:如果复制行为不合理。(2)对底层资源使用“引用计数”:可以使

2014-11-06 23:10:08 290

原创 参数绑定bind

bind函数接受一个可调用对象,生成一个新的可调用对象。定义在头文件functional中。调用bind的一般形式:auto newCallable=bind(Callable,arg_list);=====================================================================下面是一个例子:bool check_siz

2014-11-06 22:10:17 588 1

原创 第二章 构造/析构/赋值运算符

条款05:了解C++默认编写并调用哪些函数对于一个空类,编译器会自动为此类生成默认构造函数,拷贝构造函数,析构函数,和拷贝赋值运算符。例如,如果你的类仅有class Empty{};但实际上却是:class Empty{public:Empty(){......}Empty(const Empty &rhs) {......}~Empty() {......} 

2014-11-05 22:50:34 264

原创 C++动态内存

内存分类:(1)静态内存:静态内存中的对象的生命周期和程序的生命周期一样长。(2)栈内存:栈内存中的对象的声明周期较短,和局部函数的生命周期一样长。(3)堆内存:又称自由空间,是程序的内存池。堆内存用来存储动态分配对象,即那些在程序运行时分配的对象。对象的生命周期从从分配开始直到显式销毁一直存在。三者的区别与联系:分配在静态或栈中的对象由编译器自动创建和销毁。但在创建时,栈对象

2014-11-05 15:19:51 261

原创 C++隐式的类类型转换和类型转换运算符

隐式的类类型转换和类型转换运算符在一定程度上可以看做互为逆运算。(1)隐式的类类型转换:如果构造函数只接受一个实参,则实际上定义了转换为此类型的隐式转换机制,有时我们也称这样的构造函数为转换构造函数。这句话的意思也就是,在需要使用此类类型的地方,我们可以使用实参类型代替,但是有约束条件:只有实参类型经过一步类型转就能转换为类类型才可以替代。不过有时着并不是我们所需的,下面是抑制隐式类类

2014-11-04 17:42:38 621

原创 C++中的动态绑定问题

关于动态绑定问题,我一直是看了懂,过一段时间又开始模糊了,今天决定把动态绑定问题的脉络给理顺,防止又忘记。首先,动态绑定发生的条件,这是本文的核心问题,记住这个问题就可以万变不离其宗了:在C++中,当我们使用基类的引用或指针调用一个虚函数是将发生动态绑定。几个关键词是基类,指针或引用,虚函数。记住这句话再分析几个实际问题就会明白了。其次是动态绑定的原因:静态类型和动态类型不同。静态类型是变

2014-11-04 13:01:10 520

原创 Effective C++第一章 让自己习惯C++

条款01:视C++为一个语言联邦个人理解:这个条款主要告诉我们,C++并不是一种单一思想的语言,C++语言是多种思想的联合。C++可以划分为四个部分:C(c语言),Object—Oriented C++(面向对象:类),Template C++(模板的泛型编程),STL(标准模板库)。每个部分都有自己的规约,自己的思想,切忌一成不变。============================

2014-11-03 22:39:39 226

原创 C++中的this的个人理解

今天看到一个函数如下,有点不太理解,然后就遇到了this的有关问题。下面是一个在类中定义的成员函数:std::string  isbn()const {return bookNo;}我的问题是这个const是修饰谁的?有什么作用?通过查资料的得到如下结果:这个const是修饰this的,具体怎么修饰如下:在默认情况下this的类型是指向类类型非常量版本的常量指针,换句话说thi

2014-11-03 19:13:45 292

原创 C++11新特性:范围for循环和lambda表达式

1.C++11新特性之范围for循环语法格式: for(declaration:expression)statement解释:declaration:变量;expression:序列;数组,vector,string,等拥有能返回的begin和end成员的序列;例:vector v={1,2,3,4,5,6,7,8,9,0};for(auto &r:v)  

2014-11-02 17:39:08 1449

原创 Cocos2d-x学习笔记(初学)

1. cocos2d-x中,自动释放对象并不是万能的,有可能把你的变量在你尚在使用时已经销毁。例如你的全局变量使用了create(...)创建,创建时未使用retain(),则在其他地方再次使此变量用时,此变量可能已经不存在。使用retain()后,不要忘记释放此变量,可以在析构函数中处理。2. menu::create(...,...,NULL);最后一个参数NULL经常被忘记。3.

2014-11-02 11:09:47 445

原创 博客第一天

今天我决定开始写博客

2014-11-01 13:15:24 189

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除