学学习网 手机版

学学习网

学习路径: 学习首页 > 应用开发 > c++ >

C++总结

设置字体:
----------------------------------
 一、C++语言与C语言的不同之处

1)c语言后缀.c,c++后缀.cpp。 
2)当函数定义放在函数调用之后时,C程序的函数原型即声明有时可省略,而C++的函数声明不能省略,而且还要求函数的所有参数在函数原型的圆括号中声明。一个不带参数的C函数原型必须使用void关键字,而C++函数原型可以使用空参数表。 
3)C++中用new和delete运算符取代C的内存分配和释放函数malloc()和free()。 4)const常量类型:用来表示一个“常值变量”与#define的区别: #define size 20     //不加;只是文本替换此后不再检查,可能产生负作用 Const int size=20; 
 //加;替换时进行严格检查,只有当size是int型时才替换。 
 
二、C++面向对象的程序设计 

概述:面向对象不只是一种程序设计方法,还是一种建立客观事物模型、分析复杂事物的思想方法,他是以人们通常描述现实世界的方法来描述要解决的问题。
 
1. 结构化程序设计:是一种自顶而下、逐步求精的模块化程序设计方法。 
类:对象是累的一个实例。类=数据结构+对数据进行操作的函数 
面向对象的程序设计的基本特征:抽象、封装、继承和多态。 
抽象:对一类对象进行概括,抽出他们共同的性质并加以描述的过程。 
封装:将抽象得到的属性数据和行为代码有机的结合,形成一个具有类特征的统一体。 继承:一个新类可以从已有的类派生而来。 
多态:不同对象对于同样的施加于其上的作用会有不同的反应。 
 
2. 成员函数的定义形式与一般函数的定义形势基本相同,但如果在类的外部定义成员函数,必须在成员函数名前
加上类名和作用域限定符(::)。 
一般将类的定义放在头文件(.h)中,类的实现放在源文件(*.cpp)中,二main主函数可以放在另一个源文件中。在源文件中用#include编译预处理指令包含头文件。  
 
3. 对象:对象是类的一个实例,定义并实现了类,就可以利用类来声明对象,其形式与普通变量的声明类似。 
例如:以下用类Time声明了对象t1,today和对象的指针pt1: 
Time t1,today;  
//声明对象t1,today 
  Time *pt1=&t1;  
//声明指向对象t1的指针pt1 
声明对象后,就可以像引用结构变量一样,利用成员运算符“.”或指向运算符“->”引用对象的公有成员,但注意不能引用对象的非公有成员。如:pt1->setTime()或t1.showTime() 
 
4. 构造函数和析构函数:在声明对象时,对象一般需要进行初始化,及对成员变量进行初始化。在定义类时不能
对成员变量进行初始化,因为不能确定类中定义的成员变量是属于哪一个对象。  
构造函数:是一种特殊的成员函数,特殊性在于:它不需要用户程序调用,就能在创建对象时由系统自动调用。其作用就是在对象被创建时利用初始值去构建对象,使得在声明对象时就能自动地完成对象的初始化。 析构函数:是在对象的生存期即将结束时由系统自动调用的。析构函数的作用与构造函数相反,用来在对象被删除前做一些清理工作和数据保存工作。 
构造函数的名称与类名相同,析构函数的名称是在类明前加符号“~”构成(表达取反的意思)。注意,构造函数和析构函数不能有任何返回类型,包括void类型;析构函数不能有参数。下例说明了构造函数和析构函数的定义方法及执行顺序 
 
5. 静态数据成员在储存类型上类似于一般的static静态变量,也具有全局性。 
静态数据成员的属性也可以是公有、私有或保护的。对于公有静态数据成员,除了可以像一般数据库成员那样,
直接通过对象或在成员函数中访问它们,还可以利用类名加作用域限定符(::)来访问他们。对于私有和保护属性的静态数据库成员,只能在成员函数中访问它们。 
由于静态数据成员不具体属于哪一个对象,因此不能构造函数或其他成员函数中对他们进行初始化,他们的初始化必须在类体外进行。 
注意:静态成员函数只能访问类的静态成员(成员变量和成员函数),而不能访问非静态函数。解决这个问题的方法是将对象作为静态成员函数的参数,然后在静态成员函数中通过对象访问非静态成员。 
----------------------------------
  • 学学习
  • 需帮助 请留言
课程列表
重点难点
赞助链接