自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++ - 小心从派生类到基类的转换 (ptr Vs. obj)

将一个派生类指针或引用赋给基类指针或引用是安全的且自动转换的;将一个派生类对象赋给基类对象将发生“切割”(sliced),是不正确的写法!

2011-05-12 15:04:00 537

转载 C++必知必会 - RAII(资源获取及初始化)

RAII(资源获取及初始化),即resource acquisition is initialization;他不是某些人以为的“初始化即资源获取”(initialization is resource acquisition)。这对于一些重要资源非常重要,比如内存,文件句柄,网络连接,数据库连接以及审计追踪(audit trail)PAII基本技术原理很简单,如果希望保持对某个重要资源的跟踪,那么创建一个对象,并将资源的生命期和对象的生命期相关联。这样的话,就可以利用c++复杂老练的对象管理机制来管理

2011-05-12 09:19:00 2857

转载 C++必知必会 - 禁止或强制使用堆分配

有时候,指明一些特定类的对象不应该被分配到堆(heap)上是个好主意,这类对象有: 1、维护本体对象的引用计数的句柄对象。 2、具有自动存储区的类的局部对象,此类对象希望得到的效果是析构函数自动调用

2011-05-10 23:36:00 747

转载 C++必知必会 - 制造抽象基类

抽象基类通常用于表示目标问题领域的抽象概念,创建这种类型的对象是没有什么意义的。我们至少声明一个纯虚函数使得一个基类成为抽象的,编译器将会确保无人能够创建该抽象基类的任何对象。然而有时候找不到一个可以成为纯虚函数的合理候选者,但仍然希望类的行为像个抽象基类。

2011-05-10 23:31:00 276

原创 c++ - 如何使用抽象和多态

虚构造函数与Prototype模式 构造函数是不能虚的,而这里指的是具有这样功能的函数。如在一个类中,我们使用一个virtual成员函数clone来调用复制构造函数new X(*this)。clone函数实际上是一种专门类型的Factory Method模式,它制造了

2011-05-10 23:23:00 340

原创 c++方面的好书

C++这方面的经典书籍有不少,我自己看过几本,记录下每次的感受,供以后再次阅读时来参考:Effective C++:很实用,编程常见问题都涉及到了;很透彻,每个问题都分析比较具体全面。C++ Common Knowledge把一些常常被误解

2011-05-10 22:35:00 415

转载 C++必知必会 - 指针比较的含义

C++指针比较的不是地址,而是对象同一性问题。即指针地址可以不同,而比较的结果却相同。

2011-05-10 22:28:00 878

转载 C++必知必会 - 特定于类的内存管理

void* operator new (std::size_t size) throw (std::bad_alloc);void* operator new (std::size_t size, const std::nothrow_t& nothrow_constant) throw();void* operator new (std::size_t size, void* ptr) throw();Global dynamic storage operator functions are

2011-05-04 23:54:00 362

转载 C++必知必会 - placement new

"placement new"? 它到底是什么?placement new 是重载operator new的一个标准、全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本)。它的原型如下: void *operator new( size_t, void *p ) throw()  { return p; }首先我们区分下几个容易混淆的关键词:new、operator new、placement new

2011-05-04 22:57:00 293

转载 C++必知必会 - 成员函数查找

调用一个成员函数,涉及三个步骤:第一步,编译器查找函数的名字;第二步,从可用候选者中选择最佳匹配函数;第三步,检查是否具有访问该匹配函数的权限。一旦在内层作用域中找到匹配的,编译器就不会到外层作用域中继续查找了,即使在外层中有匹配的名字.内层作用域中的名字会隐藏外层作用域中相同的名字。在这一点上,c++不同于java;java中,内层作用域中的方法名字和外层作用域中的同名方法属于重载关系。

2011-05-03 22:28:00 953 1

转载 c++ - 函数对象优于函数指针

函数对象就是重载了operator()的类的对象。它的优势在于,在函数调用之间保持状态或者将状态信息传递给函数的时候,每个对象有自己的信息,不必求助于全局或局部静态变量以及一些“卑鄙的”花招。此外,通过创建一个带有虚拟operator()的函数对象的层次结构,可以获得虚函数指针的效果。函数对象还可以封装非成员函数的Func类型以及成员函数

2011-05-03 20:15:00 630

空空如也

空空如也

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

TA关注的人

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