博客专栏  >  编程语言   >  C++必知必会

C++必知必会

讲述有关C++的必知和特性。

关注
0 已关注
31篇博文
  • C++必知必会之(31)协变返回类型

    1、一般来说,一个重写的函数必须与被他重写的函数具有相同的返回类型: class Shape  {      public:           //....           virtual do...

    2013-12-12 10:45
    698
  • C++必知必会之(30)Factory Method模式

    一个高级设计通常要求基于一个现有对象类型来创建一个“适当”类型的对象。 例如:我们可能拥有一个指向某种类型的Employee对象的指针或引用,现在需要

    2013-12-10 21:08
    633
  • C++必知必会之(29)虚构造函数与Prototype模式

    1、有两个主要的原因需要使用“克隆”:必须(或更喜欢)对正在处理的对象的精确类型保持“不知情”;不希望改变被克隆的原始对象,也不希望受原始对象改变的影响。 2、在C++中,提供了这种克隆对象的能力...

    2013-12-09 09:55
    631
  • C++必知必会之(28)指针比较的含义

    1、在c++中,一个对象可以有多个有效的地址,因此,指针比较不是地址问题,而是对象同一性问题: class Shape {  ....   }; class Subject  {   ...   };...

    2013-12-08 14:26
    514
  • C++必知必会之(27)能力查询

    1、在大多数情况下,当一个对象出现并开始工作的时候,它就能够执行我们需要它做的事情,因为它的能力在其接口中已经被明确的通告了。在这些情形下,不需要询问该对象是否胜任我们要它执行的工作,只管叫它去做就行...

    2013-12-08 12:05
    483
  • C++必知必会之(26)操作符函数查找

    有时看上去

    2013-12-05 13:52
    537
  • C++必知必会之(25)实参相依的查找

    1、实参相依的查找ADL: 当查找一个函数调用表达式中的函数名字时,编译器也会到“包含函数调用实参的类型”的名字空间中检查。 例如: namespace org_semantics  {       ...

    2013-12-04 10:27
    663
  • C++必知必会之(24)成员函数查找

    1、调用一个成员函数时,包括三个步骤: 第一步,编译器查找函数的名字; 第二步,从可用候选者中选择最佳匹配函数; 第三步,检查是否具有访问该匹配函数的权限。 2、很多与函数匹配有关的错误并非源于对...

    2013-11-27 13:49
    569
  • C++必知必会之(23)名字空间

    1、全局作用域日益变得拥挤不堪。 例如,许多库都希望包括一个名为String的类。但是,如果使用两个不同的库,其中分别定义了一个string类型,就会产生多重定义错误甚至更糟。 2、本质上,名字空...

    2013-11-27 13:09
    572
  • C++必知必会之(22)Template Method模式

    1、Template Method模式(模版方法)模式和C++模版一点关系都没有。 前者是基类设计者为派生类设计者提供清晰指示的一种方式,这个指示就是“应该如何实现基类所规定的契约”。 基类可以自...

    2013-11-26 11:02
    618
  • C++必知必会之(21)重载与重写并不相同

    1、重载与重写之间没有任何关系。 2、当同一个作用域内的两个或更多个函数名字相同但签名不同时,就会发生重载。 函数的签名由它所声明的参数(或形参)的数目和类型构成。 当编译器在一个作用域内查找一个...

    2013-11-25 13:53
    543
  • C++必知必会之(20)STL函数对象

    1、STL使我们能够轻松快捷地编写复杂的代码,既标准又高度优化: std::vector names; //..... std::sort( names.begin( ),  names.end( )...

    2013-11-25 12:36
    671
  • C++必知必会之(19)Command模式与好莱坞法则

    1、当一个函数对象用作回调时,就是一个Command(命令)模式的实例。 2、回调函数就是一个通过函数指针调用的函数。 如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所...

    2013-11-24 11:53
    1110
  • C++必知必会之(18)函数对象

    1、与智能指针一样,函数对象也是一个普通的类对象。 智能指针类型重载->和*(可能还有->*)操作符,来模仿指针的行为; 而函数对象类型则重载函数调用操作符( ),来创建类似于函数指针的东西。 函...

    2013-11-24 11:10
    586
  • C++必知必会之(17)处理函数和数组声明

    1、指向函数的指针声明与指向数组的指针声明很容易混淆, 主要原因在于函数和数组修饰符的优先级比指针修饰符的优先级高,因此通常需要使用圆括号。 int *f1( );     //一个返回值为int *...

    2013-11-23 10:27
    619
  • C++必知必会之(16)指向成员函数的指针并非指针

    1、获取非静态成员函数的地址时,得到的不是一个地址,而是一个指向成员函数的指针。 class Shape  {     public:         //.....         void mov...

    2013-11-23 09:59
    683
  • C++必知必会之(15)指向类成员的指针并非指针

    1、声明一个指向成员的指针: int *ip;  //一个指向int的指针 int C::*pimC;     //一个指针,指向C的一个int成员 所要做的全部事情是使用classname::*...

    2013-11-21 15:08
    746
  • C++必知必会之(14)函数指针

    1、可以声明一个指向特定类型函数的指针:void (*fp) (int);   //指向函数的指针 注意,其中的括号是必不可少的,它表明fp是一个指向返回值为void的函数的指针,而不是返回值为v...

    2013-11-20 11:51
    807
  • C++必知必会之(13)复制操作

    1、复制构造和复制赋值是两种不同的操作。它们一般被放到一起,同时出现,并且必须兼容: class Impl; class Handle  {     public:         //.....  ...

    2013-11-20 11:00
    707
  • C++必知必会之(12)赋值和初始化并不相同

    1、赋值发生于赋值时,除此之外,遇到的所有其他的复制情形均为初始化,包括声明、函数返回、参数传递以及捕获异常中的初始化。 对于内建类型来说,赋值和初始化的操作区别不明显,只是简单地复制一些位而已。...

    2013-11-19 11:18
    786
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部