C++学习笔记(四)
关于结构化程序设计
C语言中:程序=数据结构+算法
思想:1.程序由全局变量以及许多相互调用的函数构成的。2.算法以函数的形式实现,用于对数据结构进行操作。
不足:
- 函数与其操作的数据结构没有直观的联系
- 程序理解的难度随着程序规模增大而变大
- 没有封装和隐藏的概念,不利于程序维护和补充
- 查找错误困难
- 使函数的重复使用变得困难
关于面向对象的程序设计
思想:程序=类+类+...+类
类和对象
- 成员变量和成员函数统称类的成员
- 类定义出来的变量,也成为类的实例,就是我们所说的对象
- 对象占的内存等于所有成员变量的内存之和
如何使用成员变量和成员函数
- 对象名.成员名
例如:
lei r1,r2;
r1.a=10;
r2.calculate(10,20);
PS:对一个对象进行成员变量和成员函数的操作时不会影响到其他对象。
- 指针->成员名
- 引用名.成员名
类的成员函数与类的定义分开写
成员函数可以在类里面只做一个声明,在类外来写函数。
格式:函数类型名 类的名字::函数名();
例如:
int lei::area();
{
return w*h;
}
类成员的可访问范围
注意:如果成员前面没有关键字,则默认为私有成员
构造函数
介绍:
- 构造函数是成员函数的一种
- 名字与类名相同,可以有参数但不能有返回值(void也不行)
- 作用:初始化对象
- 如果定义类时没有写,则自动生成一个默认的无参数的构造函数(不做操作)
- 对象生成时自动被调用,生成后就不能再对其执行构造函数
- 一个类可以有多个构造函数
好处:不必专门写初始化函数,也不用担心忘记调用初始化函数。如果对象没有被初始化就被使用,可能导致程序出错。
例子: