c++基础学习笔记——类和对象(重点)

在这之前,我们先看一下c与c++的区别:

c:结构化程序设计
  程序=算法+数据结构 (算法优先,数据结构次之)
 
c++:面相对象程序设计oop(Object Oriented Programing)
程序=对象+对象+...
关键:让每一个对象负责执行一组相关任务。

面向对象编程开发范式的特性:
  ①万物皆对象
  ②程序是一组对象彼此之间在发送消息
  ③每个对象有自己的内存空间,可以组装成更大对象
  ④每个对象都有类型,特定类型的所有对象可以接收相同的消息

现在进入正题
类和对象的概念:
类:是创建对象的模板和蓝图,是一组类似对象的共同抽象定义。
对象:是类的实例化的结果,是实实在在的存在,代表现实世界的某一事物。

  比如我们所说的教师这一职务就是类,而具体的张老师、李老师就是这个类的对象。

对象的三大关键特性:
  行为:对象能干什么;
  状态:对象的属性,行为的结果;
  标识:对象的唯一身份。

类与对象的区别:
  ①类是静态的定义
  ②对象是动态的实例
  ③程序代码操作的是对象而非类
  ④建模得到的是类,而非对象

类与对象的联系:
  ①类是对象的定义
  ②对象的产生离不开类这个模板
  ③类存在的目的是实例化得到对象

下面开始定义一个类,步骤包括:

  1. 定义类名
  2. 编写类的数据成员代表属性
  3. 编写类的方法代表行为

类的建模是一个抽象和封装的过程
  抽象:去掉不关注的、次要的信息而保留重要的信息
  封装:信息打包
    具体一点就是将数据和行为结合在一个包中,对对象的使用者隐藏数据的实现方式。
    实现封装的关键:不能让类中的方法直接访问其他类中的内部数据,只能通过公开行为方法间接访问。

c语言类(结构体就是一种类)

struct Savings
{
	unsigned accountNumber;		//账号
	float balance;				//结算额
};

这种类安全性不好,任何人都能访问。

c++类

class Saving
{
	public:		//公有
		float deposit(float amount)		//成员函数,可以操作数据
		{
			balance+=amount;
			return balance;
		}
	private:	//私有
		unsigned accountNumber;		//数据成员
		float balance;
};

c++类不仅可以保护数据,还可以提供成员函数操作数据。

c++用类来定义抽象数据类型(Abstract Data Type)
c++早期版本被称为带类的c(c with classes)

class 类名称
{
public:
	//公有函数
protected:
	//保护成员
private:
	//私有函数、私有数据成员
	int val;	//数据成员
};


//具体例子
class Car
{
public:
	void run
		{
			cout<<Car run<<endl;
		}
	void stop();
private:
	int CarNum;
	int price;
};

在类中定义成员函数:
  在类中定义成员函数一般为内联函数,即便没有明确用inline标识;在c++中,类定义通常放在头文件中,因此这些成员函数定义也在头文件中。
  
在类之后定义成员函数:
  c++允许在其他地方定义成员函数;将类定义和其他成员函数分开,是目前开发程序的常用做法;把类定义(头文件)看成类的外部接口,类的成员函数定义看成类的内部实现。
  
类成员函数的重载:
  类的成员函数可以像普通函数一样可以重载;但不同类即使有相同的函数名也不算重载。
  
类成员函数的默认参数:
  类成员函数可以像普通函数一样设置默认参数。
  
this指针代表当前对象占用内存空间的地址,对象的指针、引用也可以实现成员函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值