zoukankan      html  css  js  c++  java
  • <2014 04 15> C++语言回顾精要(原创By Andrew)

    C++语言回顾精要

     

    《Visual C++程序设计》张岳新,这本书是很多学校的本科生C++教学用书,今天重新拿来翻了一遍。跟很多国人写的技术书籍一样,写书并不是为了让初学者看懂入门,而是为已经掌握了该知识的人罗列一遍。

     

    这本书分为两部分:Visual C++基础&面向对象的程序设计。可以说前半本第一部分就是C语言,因为C++是C的一个超集,其对C的延伸表现为实现面向对象的一些机理和特性。用本书的话来说,就是“封装性、继承与派生性、重载与多态”。

     

    第一部分,非OO编程

    它对C语言的扩展仅仅体现在以下几个方面:

     

    1、关键字++:    (new/delete 动态内存分配成为语言本身的特性 ---》 calloc + 构造与析构函数调用  的一个封装)

            (OO:class  this  friend  virtual  operator /private protected public/ )

            (asm  catch  template throw try 汇编&异常机制)

     

    2、C++的I/O流类库:cin>>  cout<< (不属于语言,但太常用,C语言用print函数库)

     

    3、作用域部分:变量可以在块内定义(C不可以),以及相关的一些变量作用域的规则

     

    4、函数重载:可以定义多个同名函数(C不可以),根据形参个数或类型来实现函数重载

     

    5、引用:可以通过&name1 = name来定义引用类型变量,实现函数调用时“自然的”按地址传递变量(C不可以,只能用指针)

     

    -----------------------------------------------------------------------------------------

     

    第二部分:OO编程特性/方法

    C也是可以实现OO编程的,这只是一种观念和方法论,主要的手段是结构体(结构体中的的数据+函数指针等于封装了类)(ooc programming http://ooc-coding.sourceforge.net/)。但是C++在语言本身专门对OO思想进行了设计和延伸。

     

    1、C++中,结构体与类的<唯一不同>是成员权限默认不同(类 private  结构体 public)。隐含指针this、构造函数与析构函数。friend友元函数,可以定义之用来在类外访问类内(为了提高程序设计便利)。

     

    2、多态性的实现:重载技术(编译时多态:运算符&函数重载)、虚函数(运行时多态:virtual)---->(为了设计通用程序)。

     

    3、Other Technologies:

    实现类型转换与拷贝的构造函数

    多重继承--->冲突、支配规则和赋值兼容性、虚基类

    虚函数、纯虚函数、静态成员

    const、volatile对象和成员函数

    指向类成员的指针

     

    一般来说C++相对与Java这样的纯面向对象语言的特点在于:一、需要完全兼容C语言,导致语法历史遗留问题。二、功能过于庞大的OO机制以及一些便利的方法(如第3点Other Technologies),导致头绪过多。

  • 相关阅读:
    51nod 1138 【数学-等差数列】
    hdoj3665【简单DFS】
    hdoj3664【DP】
    51nod1270 【dp】
    51nod 1069【思维】
    关于一些数学符号和概率的阐述;
    51nod 1428【贪心】
    51nod 1133【贪心】
    51nod1127【尺取】
    51nod1126【矩阵快速幂】
  • 原文地址:https://www.cnblogs.com/andrew-wang/p/3667769.html
Copyright © 2011-2022 走看看