我们常听说C语言是面向过程的语言 而C++,python等语言事先向对象的语言,那么什么是面向过程和面向对象呢?
面向过程就是关注的是过程,分析求解时候的步骤,之后通过函数调运进行实现
所以我们说的对象就是被开发者封装好的方便我们使用的不同函数或是模块,而我们则是通过对象之间的交互完成程序的实现
比方说我们洗衣服的时候
面向过程:
我们洗衣服分步骤来进行
面向对象:
首先我们有四个对象:我,衣服,洗衣粉,洗衣机
而西医的过程并不用考虑,通过四个对象进行交互便可以,我们不同考虑换水,甩干…的过程
C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。
class className
{
// 类体:由成员函数和成员变量组成
}; //必须有分号
class为定义类的关键字,ClassName为类的名字,大括号中为类的主体,注意类定义结束时后面分号不能省略。
类体中内容称为类的成员:类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或者成员函数。
在这里class中的关键词public, protected, prvate后面会进行说明,这是访问限定符,目前并不影响我们对class的理解
class Person
{
public:
void show()
{
cout << _name << "-" << _sex << "_" << _age << endl;
}
public:
char* _name;
char* _sex;
int _age;
};
类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名::
虽然第一种方式方便但是推荐使用第二种分开的方式
C++实现封装的方式:用类将对象的属性与方法结合在一块,让对象更加完善,通过访问权限选择性的将其接口提供给外部的用户使用。
【访问限定符说明】
注意:访问限定符只在编译时有用,当数据映射到内存后,没有任何访问限定符上的区别
类定义了一个新的作用域,类的所有成员都在类的作用域中。在类体外定义成员时,需要使用 :: 作用域操作符指明成员属于哪个类域。
用类类型创建对象的过程,称为类的实例化
类是对对象进行描述的,是一个模型一样的东西,限定了类有哪些成员,定义出一个类并没
有分配实际的内存空间来存储它;比如:入学时填写的学生信息表,表格就可以看成是一个类,来描述具体学生信息。
一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量
Person是没有空间的,只有Person类实例化出的对象才有具体的年龄。
就比方说:Person对应是房子,而实例化对应的建造出的具体的某栋房子