(C++程序设计笔记)结构化程序设计


知识回顾:

内联函数

  • 定义内联函数用 inline 关键字
  • inline是定义关键字,在定义函数的时候用使用
  • 提高程序的执行效率

函数重载(必考)

  • 把功能类似的函数定义为函数重载
  • 函数重载的原则:
    • 函数名相同
    • 参数列表不同(个数个数或者类型不同)
    • 与返回类型无关
    • 在同一个作用域

指针和动态内存分配

int a;
int *p = &a

int *p = new int(5)
int *pp = new int[10]

// 删除指针所占用的内存空间
delete p;
delete[] pp;

String对象处理字符串

  • 在使用string之前,#include
  • 创建string类型对象:
string str = 'hello';
string str("hello");
char name[] = 'abcd';
string str  = name;
  • 定义string型的数组
string arr[] = {"","",""};
// 求元素个数
sizeof(arr)/sizeof(string)

-string 类中常用的方法:

// 访问string中的某一个字符
string str = "abcd";
str[0]

// 求字符串中的长度:
str.length();
str.size();

// 拼接字符串
str.append(""); 
str+"" 
//注意: 使用append方法的时候。str本身的值也会改变

// 截取字符串: 
str.substr(0,2);

// 查找字符串:
str.find("b",0);
// find函数如果没有找到结构,返回 -1

// 判断某个字符串是否为空:
str.empty()

// 插入子串:
str.insert(0, "an");

作业讲解

p57: 11d 12b 8、完成类似功能的函数统一命名 9、int *A = new int[20] 10、delete

新知识讲解:

一、结构化程序设计

  • 结构化程序设计又叫面向过程编程 SP
  • 代表语言 C语言
  • 设计理念:自顶向下,逐步求精,模块化实现
  • 面向过程编程语言中,没有一种机制去约束函数可以操作的数据,使得很多人可以对同一个变量进行操作,模块与模块之间的耦合度高,维护性差。程序的扩展性夜叉,于是出现了面向对象的编程语言
  • 面向过程语言 程序 = 算法 + 数据结构

二、面向过程与面向对象

  • 面向过程:重在过程
    • 算法和数据结构实现
    • 算法对应函数
    • 数据结构对应变量
  • 面向对象:
    • 重在找对象
    • 属性 和行为组成(操作) 例:直接调用find()方法
    string str;
    str.find();
    

三、面向对象的四大特征

  • 抽象
    • 把同一类事务的共同特点进行概括的过程,就叫做抽象。
    • 每个同学面前有一台电脑,每一台电脑都会有品牌、价格、颜色等。都可以打游戏、看视频、听歌等
    • 抽象是C++中核心思想
    • 抽象过程中:只关心共同点,不关心不同点,只关心主要的,不关系次要的,只关心可以做什么,不关系怎么做的。
    • 在C++中 抽象是通过来实现的
    • 什么是类?
      • 类是对现实世界中的客观事物的抽象,通常将众多具有相同属性的事物归纳,划分为某个类.同一个类中的事物都有一些共性。
      • 如:人类(age、name、sex、say)
    • 什么是对象?
      • 我的电脑是一个对象,桌子上的三明治和水杯是一个对象
      • 客观事物中存在的事物都是对象,万事万物都是对象,对象是一个实实在在的东西。
      • 描述对象:属性、行为
      • 属性 -> 静态的特征 -> 成员数据(变量)
      • 行为 -> 动态的特征 -> 成员函数(函数)
    • 类是一组具有相同属性和行为的对象的集合,是一个抽象的概念。
    • 对象是某个类的具体变现,是一个实实在在存在的个体。
  • 封装
    • 将对象的属性和行为结合在一起,构成一个独立的单元,可以有选择的公开和隐藏某些信息,提高数据的安全性。 -> 类与访问控制符来实现
  • 继承
    • 在C++中可以基于现有的类去创建新类,那么这个过程就叫做继承。
    • 提高了代码的复用性,提高了程序的开发效率
  • 多态
    • 物理中的多态:水-气态水(水蒸气)、液态水(常温)、和固态水(冰)
    • 程序中的多态?
      • 一个接口有多种实现形式
      • 同一个函数可实现不同的功能
    • 作用:提高程序的可扩展性

四、类的定义的基本语法

  • 类是一组具有相同属性和行为的对象的集合,是一个抽象的概念;
  • 对象可以通过什么描述?属性 行为
  • 描述一个商品类:
    • 属性:名称、价格、颜色、数量...
    • 行为:入库、出库、销售...
  • 描述一个日期类:
    • 属性:年月日
    • 行为:设置时间 输出时间
  • 定义一个完整的类,包括成员数据与成员函数

五、创建类的基本语法

class 类名(){
    // 属性
    // 行为
};

注意:

  • {} 后面的分号必不可少
  • 类的定义规则:
    • 谨从标识符命名规则
    • 不能以数字开头
    • 由数字、字母、下划线组成
    • 区分大小写,不能是关键字或保留字
    • 类名首字母大写
  • 在定义类中的成员的时候,数据成员一般定义为私有的,成员函数一般定义为共有的,如果不给成员写任何修饰符,默认是私有的

六、作用域运算符

  • ::用于在类外定义类的成员函数
  • 作用域运算符用于区分全局变量与局部变量
  • :: 变量名 指明访问全局变量

七、创建对象

  • string str;
  • 如果我们想访问自己定义的类中的方法,那么需要创建类的对象,通过对象去访问方法;
  • 怎么去创建对象?
  • Date d; //类似于定义普通的变量。
  • 类是一种数据类型,只是是一种引用类型。

八、访问对象成员


分类:C++
标签: C++ 课堂笔记
文章目录