代码改变世界

C++ 概述

2012-06-08 21:09  netwy  阅读(165)  评论(0)    收藏  举报

一、C++  是一种通用程序设计语言


-- 是一个更好的C
-- 支持数据抽象
-- 支持面向对象的程序设计
-- 支持通用型程序设计

视C++为一个语言联邦,C++主要的次语言:
1、C。C++仍是以C为基础
2、Object-Oriented C++,C With Class 面向对象C++
3、Template C++,泛型编程
4、STL 标准模板库


二、C++ 程序设计范型
1、过程式程序设计
2、模块程序设计,将不同的模块封装到不同的命名空间中
3、面向对象程序设计
   具体类型和抽象数据类型
   在画图的程序中,具体类型会设计一个类,然后在画图函数中通过一个类型域(枚举)画不同的图形。
   采用抽象数据类型后,会抽象出所有图形的公共接口,然后通过继承机制实现各个图形的不同特征,
   画出不同的图形。

   具体类型的意图就是使一个单独的、相对较小的事情能够很好地并且高效的完成。通常并不希望表现出多态性的行为。定义一组良好的这种类型能够为应用提供一个基础,具体类型的大小在编译期已知晓,因此这种对象可以在运行栈上分配空间以提高效率。
4、通用型程序设计
   确定你需要哪些算法;
   将他们参数化,使他们能够对各种各样适当的类型和数据结构工作
   模板是一种编译时的机制,因此,与"手工编写的代码"相比,他们的使用并不引起任何额外的运行时开销。

忠告:
请特别关注程序设计技术,而不是各种语言特征。学习一种语言就应该去把握对该语言而言固有的和自然的风格,而不是
不理解该语言的所有语言特征的细枝末节。

三、标准库
----------------------------------------------
标准库定义在一个称为std的命名空间里,标准库的功能都是通过头文件提供的。

C++基本类型,他们对应计算机的基本存储单元。

1、布尔类型
   具有两个值:true和false。整数和指针可以隐含的转换到bool值:非零的整数为true,零为false
2、字符类型
   字符型有char和wchar_t两种,每个字符都有一个整数值,不同的字符集对应的整数值可能不同。
3、整数类型
   每个整数类型有三种形式:int、signed int和unsigned int,此外,整数还有三种大小:short int、int和long int
4、浮点类型
   double、float
----------------------------------------
C++基本类型的大小在某些方面是由实现确定的,用char的大小的倍数表示。
---------------------------------------------------------------------
5、void类型
   是一个语法上的基本类型,void被用于刻画一个函数并不返回值。
6、指针类型
   指针有四个方面的内容:即指针的类型,指针所指向的类型,指针的值,指针本身所占有的内存区
指针的类型:
   int*ip;            //指针的类型是int*

   char*ip;           //指针的类型是char*

   int**ip;           //指针的类型是int**

   int(*ip)[5];        //指针的类型是int(*)[5]
指针所指向的类型:
   int*ip;            //指针所指向的类型是int

   char*ip;           //指针所指向的类型是char

   int**ip;           //指针所指向的类型是int*

   int(*ip)[5];        //指针所指向的类型是int()[5]
指针的值(或称指针所指向的内存区)
    所有类型的指针的值都是一个32位整数,因为32位程序里内存地址全都是32位长。 指针所指向的内存区就是从指针的值所代表的那个内存

地址开始,
    长度为sizeof(指针所指向的类型)的一片内存区。
指针本身:
    指针本身所占有的内存区是指针本身占内存的大小,这个你只要用函数sizeof(指针的
    类型)测一下就知道了。在32位平台里,指针本身占据了4个字节的长度。

7、数组类型
   数组的边界必须是一个常量表达式
8、引用类型
   一个引用就是某个对象的另一个名字,引用的主要用途就是为了描述函数的参数和返回值
   引用类型必须要初始化,初始化后就不能再改变,对引用的初始化和赋值是完全不同的概念
C++ 自定义类型

1、枚举类型
   枚举的使用就像一个整数类型,枚举的值一般从0开始,也可以显示的初始化。
2、数据结构和类