一、面向过程和面向对象初步认识
以点外卖为例来区分面向过程和面向对象
面向过程
上架商品->点外卖->通知商家->分配骑手->派送->点评->...
面向对象
写三个类:商家、用户、骑手
二、类的引入
在C语言中,结构体struct只能定义变量,而在C++中,C++兼容了C中结构体struct的用法,但对struct进行了升级,将结构体struct升级成了类class:1.结构体的名称可以做数据类型;2.类里面可以定义函数
其中由类创造出的变量叫做对象
三、类的定义
calss(关键字) NameOfClass(类名)
{
//类体,其中包含了成员变量与成员函数
char _name[20];
char _gender[3];
int age;
void print()
{
cout<<_name<<" "<<_gender<<" "<<age;
}
}
四、类的作用域
1.类其实上是定义了一个作用域,可以在不同的类中定义同样的函数
class NameOfClass1
{
void print();
};
class NameOfClass2
{
void print();
};
2. 在写代码时,类同样也是定义和声明分开,其中在头文件中对类进行声明,在源文件中对类中的成员函数进行定义。但在定义时,应在成员函数前加上类名和::
class Name
{
public:
void Init();//声明
void print();
};
void Name::Init()//类外的定义
{
;
}
void Name::print()
{
;
}
3.在类里面定义的函数默认是inline函数。
实际中,一般情况下,短小函数可以直接在类里面定义,长一点函数声明和定义分离
4.变量的定义和声明的区别为:有没有开辟空间,有开辟空间就是定义,没有开辟空间就是声明
在类中的成员变量只是声明,而用类创造出对象时,才是成员变量的定义
五、类的实例化-用类创造变量时就是类的实例化
六、类的访问限定符及封装
6.1访问限定符
public:公有,整个文件都可以访问
private:私有,只能通过类内访问
protect:保护,只能通过类内和子类进行访问
6.2封装
在C语言中,数据结构中的数据和方法(函数)是分离的;
而在C++语言中,可以把数据结构中的数据和方法合到一起去;
1.C++把数据和方法封装到一起,并可以把想给别人访问的数据和方法定义为公有,把不想给别人访问的数据和方法定义为私有。只能通过特有的接口来访问,根据定义来访问
2.一般情况设计类,成员数据都是私有或者保护,想访问时设计为公有,不想访问时设计为私有
3.是一种更严格的设计管理