前言
C语言面向过程,注重怎么做,可重复使用性差,就像是制作电脑,c++面向对象,注重对象本身,可重复使用性高,而像是组装电脑。
先简单认识几个基础的概念
a.抽象 对具体的问题进行概括,抽出这一类他们共同的性质,加以描述的过程。有数据抽象和行为抽象两种。
b.封装 将抽象的数据和行为结合,看作为一个整体。不注重封装里面的具体细节,只需要了解接口即可。
c.继承与派生 在原来基础上,进行更具体的说明。
下面我们来学习一下抽象和封装具体的实践——类
一、定义类
类(class)
用户自己定义的数据类型。
如果程序中要使用,必须自己定义,或者使用已经设计好的。
定义
class 类名 { //类体
数据列表
int a,b;
} ;
成员个数没有限制,类成员可以是函数,类声明之后不能更改
二、成员访问控制
public:公用成员,外部内部都可以访问,实现类的外部接口
private:私有成员,只能内部成员
protected:被保护的成员,内部成员或者派生的成员
class fun {
public: int set (int n);
private:int a,b;
protected:int x;
double y;
}
三、类的数据成员
- 基本数据类型、指针、数组、引用、结构体、共用体、枚举、const限定等数据类型都是可以的,还可以是成员对象。
- 在类中定义或者声明数据类型也是可以的,但是属于局部类型,只可以在类的内部使用;
- 可实现数据类型间的嵌套,如结构体,共同体之间的嵌套
四、类的成员函数
- 类在外部定义成员函数
返回类型 类名::函数名 (形式参数列表){
函数体
}
(::)叫做作用域限定符,如果它的前面没有类名,则表示空间域限定符
- 内联函数 inline
在类内部定义的函数,默认为内联函数;
也i可以光明正大的使用内联函数
声明,或定义的时候,或在两者都在函数名前面加上inline
内联函数的条件:代码少,没有switch语句和循环语句
- 可以对函数成员使用重载和默认参数
只能在类内部使用 - 成员函数的储存方式
每个对象的数据都有独立的储存空间;
成员函数,因为要调用很多次,所以成员函数只有一段公用的存储空间,即调用不同对象时,使用同一块空间;
最后一个类所占用的存储空间就是对象数据之和,函数不算入 - 类的声明
一般把类的定义放在头文件,或者程序开头,便于使用;
可以指声明不定义类,只能对类引用或者是使用指针
类不能嵌套自己一样的类,因为还没有定义结束,即不能使用,但是可以使用指针和引用。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了关于类的基本知识,对c++中抽象和封装有个更深一步的了解。