文档介绍:梦想是成长的潜力。C++学 2类与数据抽象 2运算符重载 9继承 16文件处理 22异常处理 24数据结构 26链表 26堆栈 31队列 32二叉树 32模板 100虚函数和多态性 259string类与字符串处理 393STL 649I/O流 1035C++杂记 1136C++中const总结 1240C++中的static成员 1325构造函数与析构函数 1367名字空间 1452常用C++标准库头文件 1539面向对象编程工程的一般结构 1678出错提示 1692this指针 1703动态内存分配与new和delete运算符 1754对象与成员关系的深入思考 1775类、类成员、对象可借用二维表来描述:我的黄金思想 1788类型转换 1802函数指针 1813关于友元 1837C语言学 1908C语言概述 1909基本数据类型 1970算术运算符 2120程序结构 2271C/C++数组 2381C/C++指针 2518C/C++函数 2747结构型 2924编译预处理 3098条件编译 3155C杂记 3205运算符的优先级和结合律 3224本文档结构:标题1 标题3 标题4本文档大部分内容取自《C++大学教程》(第二版),[美],电子工业出版社。C++学类与数据抽象在C语言和其他过程化编程语言中,编程是面向操作的。而在C++中,编程是面向对象的。在C语言中,编程单位是函数,C语言程序员的主要工作是编写函数,完成某个任务的一组操作构成函数,函数的组合则构成程序。数据在C语言中当然很重要,但这些数据只用于支持函数所要进行的操作。系统指定中的动词帮助C语言程序员确定一组用于实现系统的函数。而在C++中,编程的单位是类,对象最终要通过类实例化。C++程序员把重点放在生成称为类的用户自定义类型。每个类包含数据和操作数据的一组函数。类的数据部分称为数据成员,类的函数部分称为成员函数,有些面向对象语言也称方法。int等内部类型的实例称为变量(variable),而用户自定义类型(即类)的实例则称为对象(object)。在C++中,变量与对象常常互换使用,C++的重点是类而不是函数。系统指定中的名词帮助C++程序员确定实现系统所需的用来生成对象的一组类。类与结构型:C++中的类是由C语言中的struct演变而来的,C++中的结构和类是非常相似的。结构成员可以是任何类型,但不能是结构本身的类型。例如,Time类型的成员不能在Time的结构定义中声明,但可以在该结构定义中声明Time结构的指针。当结构包含同一类型结构的指针时,称为自引用结构。自引用结构用于形成链接数据结构,如链表、队列、堆栈和树等。结构的定义并不在内存中保留任何空间,而是生成新的数据类型,用于声明变量。访问结构成员或类成员时,使用成员访问运算符,包括圆点(.)和箭头运算符(->)。圆点运算符通过对象的变量名或对象的引用(引用对象)访问结构和类成员。箭头运算符通过对象指针(指针对象)访问结构和类成员。结构与类相比生成的数据类型有一定的缺点。程序能够直接访问数据成员,所以无效的数据可能赋给结构成员。如果struct的实现方法改变,则所有使用这个struct的程序都要改变,这是因为程序员直接操作数据类型,没有一个“接口”保证程序员正确使用数据类型并保持数据的一致状态。有关结构型的更多信息参见“结构型”。结构与类是很相似的以下引用摘自网络:“结构和类在C++中有好多相似之处,同样可以有方法(在C中的结构就不行),同样都是数据类型,所说的不同也许是指C中的结构与C++中的类相比吧。”“其实在C++中,类和结构没有什么大的区别,也可以定义方法,只是在类中,默认的是private,而在结构中默认的是public。”{结构也可以定义方法:  class myc{  int in;  float fl;  };  struct mys{  int in;  float fl;  };  MyClass mc;  MyStruct ms;  int c=sizeof(mc);  int s=sizeof(ms);  运行后c=s+4个字节,你用VC试试就知道了  原因:对于类(其实是浪废)多了一个虚函数指针,当上级类中有虚函数定义时,如果本类定义了这个虚函数,则执行 Up* u;Child* c=new Child();  u=c; //基类指针指向派生类对象 ();//fun为u中定义的虚函数 第三行执行的是c定义的虚函数,运行时如何知道这一点呢,就是通过上面的指针现查到的(即C++的多态性)。 总之:struct更节约内存,但不能定义虚函数了。}总结:C++中的结构(struct)与类大致上相同。