类和对象Ⅰ
面向对象的程序设计有三个主要特征:封装、继承、多态。 而封装的实现通过类(Class)
Class是对一组具有相同属性特征和行为特征的对象的抽象
Class name{
private: //(私有类型,只有被的成员函数、友元函数访问)
public: //(公有类型)
protected://(保护类型)
};
- 三种类型不一定都有,至少含有一种类型;
- 不能在类声明中给数据成员赋初值;
- 数据成员可以为任何类型,但是前面不能有
auto
、register
、extern
类型进行说明;
成员函数的定义
成员函数(C++术语)和方法(面向对象方法术语)指的是同一实体
- 成员函数的定义形式:
1.内联函数:代码较少,可以直接在类中定义
2.外联函数:代码较多,在类外对函数进行定义
但如果使用了inline
声明,则该函数属于内联函数(内置函数)
外联注意点:缀上类名,类名和函数名间加上作用域运算符::
,说明成员函数从属于哪个类。
对象的使用
class Book{
......
}book1, *ptr;
ptr = &book1;
则有:ptr -> Input() == book1.Input == (*ptr).Input
对象也可以取别名:
eg: Book &b = book1;
构造函数和构析函数:
为了方便对象的初始化和清理工作,两个特殊的成员函数应运而生
构造函数:
创建对象时,为对象分配空间,进行初始化。
- 定义(声明)构造函数原型格式:类名(形参列表)
- 类外定义构造函数格式:
类名::类名(形参列表){
......
}
以上不是两种定义方法,是一套的操作流程
特点:
- 1.名字必须与类的一样;
- 2.构造函数可以是任何类型参数,也不能被指定为任何类型