- 面向程序设计的基本特点是:
抽象
、封装
、继承
、多态
。 抽象
就是对同一类对象的共同属性和行为进行概括,最终形成具有共同性质的类。- 在C++中,封装是用
{}/花括号/大括号
来实现的。 - 封装的目的是:
增强安全性
、简化编程
。 继承
是在已有类的基础之上进行扩展形成新的类。多态
是指同一名称,在程序中可以代表不同的行为,其目的是为了减少程序中标志符的个数。- 类的成员包括
数据
成员和函数
成员。在类的内部,成员之间可以相互访问。 - 类的成员的访问控制方式有3种,分别是
public
、private、protected
。 公有
成员是类的对外接口,可以在类的外部访问,形式为对象名.成员名。私有
成员仅可在类的内部访问,直接使用成员名即可访问,实现了对数据的保护。保护
成员可以在本类及本类的派生类中访问,在此范围之外不能访问。- 类的成员函数可以在类内定义,此时该函数属于内联函数,也可以在类外进行定义,函数名之前要加以限定,形式为
类名
::函数名/成员函数名/成员名
。 构造函数
的作用是初始化数据成员。- 下面关于构造函数的说法正确的是:
AD
A. 函数名必须和类名相同
B. 函数的返回值类型为void
C. 必须有形参
D. 函数体中没有return语句
B选项是错误的。因为构造函数没有返回值,因此在声明或定义时也不能有返回值类型,也不能标记返回值类型为void。
C选项是错误的。构造函数可以没有参数。
- 构造函数在创建对象的时候自动被调用,调用时如果不需要实参,这种类型的构造函数成为
默认构造函数
。
默认构造函数就是调用时不需要实参的构造函数,包括无参的构造函数和全部参数都有默认值的构造函数。例如:
Point()
Point(int x=0,int y=0)
这两个Point类的构造函数都属于默认构造函数。
- 下面关于构造函数的说法正确的是:
D
A.如果不定义构造函数,则不能建立对象
B.自己定义的构造函数一定要有参数
C.默认构造函数一定没有参数
D.构造函数的参数可以有默认值
A选项的错误在于,如果不定义构造函数,在建立对象时会自动调用系统提供的构造函数来完成对象的初始化。
B选项的错误在于,自定义的构造函数可以是无参的构造函数。比如:Point()就是自定义的Point类的构造函数。
C选项的错误在于,默认构造函数可以是全部参数都带有默认值的构造函数,这种情况下,它是有参数的。
- 初始化列表负责为新创建的一个或几个数据成员指定初始值,使用初始化列表进行初始化,比在构造函数体中用赋值语句对成员赋值的效率更
高
。