类和对象
一、面向过程和面向对象初步认识
- C和C++之间的区别
- C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。
- C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。
二、类的引入
C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。比如:
之前在数据结构初阶中,用C语言方式实现的栈,结构体中只能定义变量;现在以C++方式实现,会发现struct中也可以定义函数。
故,类的引用也可以通过 C的结构体 进行过度
//C++兼容c中 struct 的用法
//C++ 升级 struct 升级成了类
//类和对象:
//1 个 类, 实例化 N 个对象
- 类和结构体有什么区别嘛?
1.结构体只有数据,升级成类之后,也可以写函数
//以前c是这样写的
struct Stack
{
int* _array;
size_t _capacity;
size_t _top;
};
void StackInit(struct Stack* ps,int n)
{
}
- 升级成类之后,我们就可以把方法往类里面去放啦!
struct Stack
{
void Init(int n = 4) //全缺省函数,
{
_array = (int*)malloc(sizeof(int) * capacity);
if (nullptr == _array)
{
perror("malloc申请空间失败");
return;
}
_capacity = n;
_size = 0;
}
//成员变量
int* _array;
size_t _capacity;
size_t _top;
};
C++升级struct升级成类
1.类里面可以定义函数
2.名称就可以代表类型
struct Stack