类与对象(1)

文章目录

  • 面向过程和面向对象的区别
    • 面向过程
    • 面向对象
    • 举个例子
    • 类的定义
    • 类的两种定义方式
      • 声明和定义全部都放在类体中
      • 声明和定义分开存放
    • 类的访问限定符
      • 类的访问限定符
    • 类的作用域
    • 类的实例化

面向过程和面向对象的区别

我们常听说C语言是面向过程的语言 而C++,python等语言事先向对象的语言,那么什么是面向过程和面向对象呢?

面向过程

面向过程就是关注的是过程,分析求解时候的步骤,之后通过函数调运进行实现

面向对象

首先声明此对象并不是那个对象,嘿嘿
类与对象(1)_第1张图片

所以我们说的对象就是被开发者封装好的方便我们使用的不同函数或是模块,而我们则是通过对象之间的交互完成程序的实现

举个例子

比方说我们洗衣服的时候
面向过程:
我们洗衣服分步骤来进行
类与对象(1)_第2张图片
面向对象:
首先我们有四个对象:我,衣服,洗衣粉,洗衣机
而西医的过程并不用考虑,通过四个对象进行交互便可以,我们不同考虑换水,甩干…的过程
类与对象(1)_第3张图片

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文件中,注意:成员函数名前需要加类名::
类与对象(1)_第4张图片
类与对象(1)_第5张图片
虽然第一种方式方便但是推荐使用第二种分开的方式

类的访问限定符

类的访问限定符

C++实现封装的方式:用类将对象的属性与方法结合在一块,让对象更加完善,通过访问权限选择性的将其接口提供给外部的用户使用。
类与对象(1)_第6张图片
【访问限定符说明】

  1. public修饰的成员在类外可以直接被访问
  2. protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)
  3. 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止
  4. 如果后面没有访问限定符,作用域就到 } 即类结束。
  5. class的默认访问权限为private,struct为public(因为struct要兼容C)

注意:访问限定符只在编译时有用,当数据映射到内存后,没有任何访问限定符上的区别

类的作用域

类定义了一个新的作用域,类的所有成员都在类的作用域中。在类体外定义成员时,需要使用 :: 作用域操作符指明成员属于哪个类域。
类与对象(1)_第7张图片

类的实例化

用类类型创建对象的过程,称为类的实例化

  1. 类是对对象进行描述的,是一个模型一样的东西,限定了类有哪些成员,定义出一个类并没
    有分配实际的内存空间来存储它;比如:入学时填写的学生信息表,表格就可以看成是一个类,来描述具体学生信息。

  2. 一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量类与对象(1)_第8张图片
    Person是没有空间的,只有Person类实例化出的对象才有具体的年龄。

就比方说:Person对应是房子,而实例化对应的建造出的具体的某栋房子

类与对象(1)_第9张图片

你可能感兴趣的:(开发语言,c++)