第一讲:从c到c++

来源:互联网 发布:java swing 教程 编辑:程序博客网 时间:2024/05/19 06:16

1.1 从c到c++

c++
- 在面向过程的基础上对c语言进行扩充
- 增加面向对象的机制

特点
- 更直观地描述客观世界中存在的事物(对象)以及它们之间的关系.
- 将事物看成具有属性和行为的对象.
- 通过抽象找出同一类对象的共同属性和行为,形成类
- 通过类的继承和多态实现代码重用


1.2 面向对象的基本概念

对象
* 任何事物都可以看成一个对象,可以是自然物体,也可以是逻辑结构.包含两个要素:
* 静态特征称为"属性"
* 动态特征称为"行为"
* 外界向物体发一个信息称为"消息"
* 对象由一组属性和行为构成.


* 将具有相同特性的事物归纳,集中成一个统一类型,称为抽象.作用:表示同类事物的本质.
* 在c++中,类是具有相同属性的服务的一组对象的集合.类是对象的抽象,对象则是类的具体表现形式/特例.

封装
* 把对象不想让外界知道的属性和功能屏蔽起来,让外界看不到.其含义:
* 将有关的数据和操作函数封装成一个基本单位,即对象内,各对象之间相互独立,互不干扰.
* 将对象中的部分属性或功能对外屏蔽,只留少数接口对外公布,已接受外界的消息.
* 优点
1. 降低了操作对象的复杂程度,使用时不需要知道对象内部的实现细节,只需要对外部功能操作就好.
2. 对象的行为由内部数据结构和相关的操作,外部行为由操作接口实现,关心的是接口提供的服务.

继承
* 若已经有了一个名为"A"的类,还想建立一个名为"B"的类,而后者内容只是在前者的基础上增加了少量内容,只需要把A类拿过来,在此基础上添加新的内容就可以了,这就是面对对象程序设计的继承机制.
* c++提供继承机制,大大节省了编程工作量,这就是所谓的:软件重用(software reusability) 的思想.

多态性
* 如果有几个相似而不同的对象,要求在向它们发出同一个消息时,各自作出不同的操作,这种情况就是:多态现象.
* 多态性是指由继承而产生的不同的类,其对象对于统一消息会作出不同的响应.
* 多态性能增加程序的灵活性,它是面向对象程序设计的重要特性.

1.3 简单的c++程序

#include <iostream>  //预编译命令using namespace std;   //int main()       //主函数{            //函数开始    cout<<"How are you!\n"; //输出字符串    return 0;   }            //函数体结束

iostream 和 iostream.h 的区别
文件的引入的区别.

  1. 建立.h文件 
class st     //定义类st{ private:       //类的私有数据成员       int num, score; public:      //类共有的成员函数      void setdata();      {cin>>num>>score;}      void display():      {cout<<"num="<<num<<endl;}};//结束必须有 ";"
  1. 建立.cpp文件 
#inlcude <iostream>using namespace std;#include "aaa.h"   //调用头文件st st1, st2;    //定义st类型的变量st1,st2,称为对象int main(){    st1.setdata();    ....    return 0;}

程序单位

  1. 预处理命令:以"#"开头的行,称为编译预处理行.
    • "#include "称为文件预处理命令
    • "include " 是将文件"iostream.h”的内容包含到新建的程序中去.
    • iostream.h 是c++系统定义的一个头文件,其中设置了c++的输入/输出(I/O)相关环境,并定义了输入流cin和输出流cout对象.
  2. 全局声明部分:在函数外的声明部分,用户自定义数据类型.程序中变量的定义,例如对类st的定义,对变量的定义,对函数的声明.
  3. 函数:函数是程序中必须有的和最基本的组成部分,main()是每一个c++程序都必须有的,称为主函数,他是程序的入口.
    注:main()前的int表示住函数的返回值,{}中为函数体.c++在正常执行时返回0,否则返回-1.

c++对于c的补充


  • cin,cout,endl的使用
  • 用const定义常变量.

宏定义如下
1.不带参宏定义
#define PI 3.14 //定义符号常量,实际编译时只是字符置换
2.带参宏定义
#define 宏名(参数表) 字符串
/字符传中包含在括弧中指定的参数/
#define S(r) PI*r*r
而S(a+b)为PI*a+b*a+b
#define S(r) PI*(r)*(r)
为PI*(a+b)*(a+b)
用const定义长常变量
c++中 const float PI=3.14
PI具有变量属性,有数据类型,占用存储空间,有地址,可以用指针指向它,但是程序运行时其值不可改变.

原创粉丝点击